हाँ, सबसे डेटाबेस इसकी अनुमति है। आम तौर पर आपको अपने एसक्यूएल स्टेटमेंट को कुछ के साथ सीमित करना होता है। PostGRES और MySQL में यह अर्धविराम (;) है। माइक्रोसॉफ्ट एसक्यूएल सर्वर में आपको कीवर्ड का उपयोग करना चाहिए। [मई 2013 अद्यतन: एसक्यूएल सर्वर 2012 के रूप में, आप अपने बयान को सीमित करने के लिए अर्धविराम का उपयोग कर सकते हैं और इसका उपयोग करना चाहिए। SQL सर्वर 2012 (यानी अगला संस्करण और उससे परे) के बाद यह अनिवार्य होगा। जीओ का उपयोग अब SQL2012 और उससे आगे की चीजों को करने के लिए बहिष्कृत तरीका है)। ]
MySQL/Postgres उदाहरण:
DELETE FROM DUMMYTABLE_A where X=${value};
DELETE FROM DUMMYTABLE_B where X=${value};
DELETE FROM DUMMYTABLE_C where X=${value};
MS-एसक्यूएल उदाहरण:
DELETE FROM DUMMYTABLE_A where X=${value}
GO
DELETE FROM DUMMYTABLE_B where X=${value}
GO
DELETE FROM DUMMYTABLE_C where X=${value}
बेहतर डेटाबेस (यानी नहीं MySQL।) भी शुरू TRAN/COMMIT TRAN/ROLLBACK TRAN के साथ लेनदेन का समर्थन करेंगे । लेन-देन का उपयोग करके आप वास्तव में सभी बयानों को एक परमाणु संचालन में बैच कर सकते हैं, जहां यदि इसका हिस्सा असफल रहा, तो तीनों को वापस ले जाया जाएगा। उन लोगों के बारे में कुछ और जानकारी के लिए http://www.sqlteam.com/article/introduction-to-transactions देखें।
सबसे अधिक संभावना है कि आपको अपने एसक्यूएल स्टेटमेंट्स के बीच अर्धविराम है!
स्रोत
2011-10-18 05:52:54
मैं नहीं जानता, लेकिन यह मेरे लिए काम नहीं करता है मैं अगले सार https://gist.github.com/AdelinGhanaem/b565ca3a447e89087ab7 आप देख सकते हैं कि यह साथ दो बयानों को अलग नहीं करता है संलग्न कर रहा हूँ रोलबैक के साथ 'क्वेरी' ... – Adelin
मैंने इस तरह से कोशिश की और MyBatis ने अपवाद फेंक दिया। समस्या यह थी कि मैंने जेडीबीसी यूआरएल में ध्वज अनुमति MultiQueries = सच सेट नहीं किया था। धन्यवाद। –
यह मेरे लिए भी काम नहीं करता है, मैं 'इन' स्थिति के माध्यम से डेटा के दो बैच को हटाने की कोशिश कर रहा हूं, हालांकि मुझे एसक्यूएल व्याकरण वाक्यविन्यास त्रुटि मिली है। –