SQL में Transactions एक sequence (क्रम) होता है जिसमें एक या अधिक SQL operations को एक साथ execute किया जाता है।
दूसरे शब्दों में कहें तो, “SQL Transaction एक या एक से ज्यादा SQL commands का set होता है जो एक साथ execute होते हैं।“
Transactions का इस्तेमाल data को सुरक्षित और consistent बनाए रखने के लिए किया जाता है।
जब एक ट्रांजेक्शन पूरा हो जाता है, तो data में बदलाव हमेशा के लिए commit कर दिए जाते हैं। अगर किसी transaction के दौरान कोई error आती है, तो पूरे transaction को roll back किया जा सकता है, जिससे डेटाबेस को एक consistent state में रखा जा सके।
SQL transaction का मुख्य उद्देश्य data को consistency, reliability, और integrity के साथ मैनेज करना होता है। इसका मतलब है कि जब भी हम data को modify करते हैं, तो यह सुनिश्चित किया जाता है कि बदलाव सही तरीके से हों और डाटा में कोई inconsistency न हो।
Transaction की Properties
SQL transactions की 4 मुख्य properties होती हैं, जिन्हें ACID Properties कहा जाता है:-
- Atomicity: Atomicity का मतलब है कि ट्रांजेक्शन को पूरी तरह से execute किया जाएगा या फिर पूरे ट्रांजेक्शन को cancel किया जाएगा। अगर ट्रांजेक्शन के दौरान कोई error आता है, तो सभी changes को undo कर दिया जाता है, ताकि data में कोई inconsistency न हो।
- Consistency: Consistency का मतलब है कि ट्रांजेक्शन के बाद डाटा हमेशा valid state में रहेगा। कोई भी transaction डाटाबेस को एक valid state से दूसरे valid state में ही लेकर जाएगा। अगर ट्रांजेक्शन गलत तरीके से execute होता है, तो डाटा invalid state में नहीं जाएगा।
- Isolation: Isolation यह सुनिश्चित करता है कि एक ट्रांजेक्शन दूसरे ट्रांजेक्शन से independent होता है। मतलब अगर दो ट्रांजेक्शन एक साथ execute हो रहे हैं, तो उनका असर एक-दूसरे पर नहीं पड़ेगा। Isolation के कारण डाटा में कोई inconsistency नहीं होती।
- Durability: Durability का मतलब है कि एक बार ट्रांजेक्शन commit हो जाए, तो उसके बाद data हमेशा के लिए database में save रहेगा। अगर सिस्टम crash हो जाता है, तो भी commit किए गए changes नहीं खोते।
SQL Transaction का इस्तेमाल कैसे करें?
SQL में ट्रांजेक्शन को manage करने के लिए कुछ मुख्य commands होती हैं, जिनके बारें में नीचे दिया गया है:-
BEGIN TRANSACTION: ट्रांजेक्शन की शुरुआत करने के लिए इस command का उपयोग किया जाता है। जब एक ट्रांजेक्शन शुरू होता है, तो इस command के बाद सभी बदलाव (changes) temporary होते हैं।
BEGIN TRANSACTION;
COMMIT: जब ट्रांजेक्शन सफलतापूर्वक complete हो जाता है और सभी बदलाव सही होते हैं, तो commit statement का उपयोग किया जाता है। इस command के बाद बदलाव (changes) permanent हो जाते हैं।
COMMIT;
ROLLBACK: यदि ट्रांजेक्शन के दौरान कोई error आता है, तो changes को undo करने के लिए rollback का उपयोग किया जाता है। इसका मतलब है कि जो भी changes हुए हैं, वे cancel कर दिए जाते हैं।
ROLLBACK;
SQL Transaction का उदाहरण
मान लीजिए हमें एक बैंक अकाउंट से पैसे निकालने हैं, और उन पैसों को दूसरे अकाउंट में जमा करने हैं। यह दोनों कार्य एक साथ करने के लिए हम एक ट्रांजेक्शन का उपयोग करेंगे।
BEGIN TRANSACTION;
-- अकाउंट 1 से पैसे निकालना
UPDATE accounts SET balance = balance - 500 WHERE account_id = 1;
-- अकाउंट 2 में पैसे जमा करना
UPDATE accounts SET balance = balance + 500 WHERE account_id = 2;
-- यदि दोनों operations सफल हों, तो ट्रांजेक्शन commit करें
COMMIT;
अगर किसी भी step में error आता है (जैसे कि अकाउंट 1 से पैसे निकालते समय error), तो हम ट्रांजेक्शन को rollback कर सकते हैं ताकि किसी भी अकाउंट में गलत बदलाव न हो।
BEGIN TRANSACTION;
-- अकाउंट 1 से पैसे निकालना
UPDATE accounts SET balance = balance - 500 WHERE account_id = 1;
-- अगर अकाउंट 1 से पैसे निकालने में error हो, तो ट्रांजेक्शन rollback करें
IF ERROR THEN
ROLLBACK;
RETURN;
END IF;
-- अकाउंट 2 में पैसे जमा करना
UPDATE accounts SET balance = balance + 500 WHERE account_id = 2;
-- ट्रांजेक्शन को commit करें
COMMIT;
इसे भी पढ़ें:-
निवेदन:– इस पोस्ट को अपने दोस्तों के साथ share कीजिए, जिससे कि वो भी अपने exam की तैयारी आसानी से कर पायें। अपने सवाल नीचे comment करके पूछिए। धन्यवाद।