MCAWALA

SQL में COMMIT और ROLLBACK क्या हैं? समझें आसान शब्दों में”

TCL (Transaction Control Language) SQL का वह हिस्सा है जो ट्रांजेक्शन्स (लेन-देन) को नियंत्रित करने के लिए उपयोग किया जाता है। ट्रांजेक्शन्स डेटाबेस में डेटा की एक या अधिक क्रियाओं का एक समूह होते हैं, जिन्हें एक साथ पूरा किया जाता है या रद्द किया जाता है।

TCL कमांड्स का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि ट्रांजेक्शन्स सही तरीके से पूरे हों और डेटाबेस में डेटा की स्थिरता बनी रहे।

TCL के प्रमुख कमांड्स:

  1. COMMIT:
    • यह कमांड वर्तमान ट्रांजेक्शन द्वारा किए गए सभी परिवर्तनों को स्थायी रूप से (save) कर देती है।
    • उदाहरण: COMMIT;
    • इसका मतलब है कि अब तक किए गए सभी बदलाव (जैसे INSERT, UPDATE, DELETE) डेटाबेस में स्थायी रूप से लागू हो गए हैं।
  2. ROLLBACK:
    • यह कमांड वर्तमान ट्रांजेक्शन द्वारा किए गए सभी परिवर्तनों को रद्द (undo) कर देती है।
    • उदाहरण: ROLLBACK;
    • इसका मतलब है कि ट्रांजेक्शन में किए गए सभी बदलावों को रद्द कर दिया गया है, और डेटाबेस पहले की स्थिति में वापस लौट आता है।
  3. SAVEPOINT:
    • यह कमांड ट्रांजेक्शन में एक बिंदु (checkpoint) सेट करती है, जिससे आप उस बिंदु पर वापस लौट सकते हैं अगर ट्रांजेक्शन में कुछ गलत हो।
    • उदाहरण: SAVEPOINT my_savepoint;
    • इसका मतलब है कि “my_savepoint” नामक एक बिंदु सेट किया गया है, जिसे बाद में रिवर्ट (rollback) किया जा सकता है।
  4. SET TRANSACTION:
    • यह कमांड एक ट्रांजेक्शन के गुण (properties) को सेट करने के लिए उपयोग की जाती है, जैसे कि isolation level या read-write mode।
    • उदाहरण: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

COMMIT COMMAND

COMMIT एक SQL कमांड है जिसका उपयोग डेटाबेस में किए गए बदलावों को स्थायी (permanent) बनाने के लिए किया जाता है।

जब आप किसी ट्रांजेक्शन (जैसे डेटा जोड़ना, अपडेट करना, या हटाना) को पूरा कर लेते हैं और चाहते हैं कि ये बदलाव डेटाबेस में हमेशा के लिए सेव हो जाएं, तो आप COMMIT कमांड का उपयोग करते हैं।

आसान शब्दों में:

  • COMMIT का मतलब है: “जो भी बदलाव आपने किए हैं, वह अब हमेशा के लिए डेटाबेस में सहेज लिए गए हैं।”
  • एक बार COMMIT किया, तो इन्हें वापस नहीं बदला जा सकता।

उदाहरण:

अगर आपने एक टेबल में नया डेटा डाला और अब उसे स्थायी बनाना चाहते हैं, तो आप यह कमांड चलाएंगे:

COMMIT;

अब, आपके द्वारा किए गए बदलाव डेटाबेस में स्थायी रूप से सेव हो गए हैं!

आशा है यह समझने में मददगार था! 😊

ROLLBACK COMMAND

ROLLBACK एक SQL कमांड है जिसका उपयोग किसी ट्रांजेक्शन द्वारा किए गए बदलावों को रद्द (undo) करने के लिए किया जाता है। जब आप किसी ट्रांजेक्शन के दौरान गलती से बदलाव कर लेते हैं और उन्हें वापस पाना चाहते हैं, तो आप ROLLBACK कमांड का उपयोग करते हैं।

आसान शब्दों में:

  • ROLLBACK का मतलब है: “आपने जो बदलाव किए हैं, उन्हें वापस ले आना और डेटाबेस को उसकी पुरानी स्थिति में लाना।”
  • जब आप ROLLBACK करते हैं, तो उस ट्रांजेक्शन द्वारा किए गए सभी बदलाव (जैसे डेटा जोड़ना, अपडेट करना या हटाना) हटा दिए जाते हैं।

उदाहरण:

मान लीजिए, आपने एक टेबल में कुछ डेटा हटाया, लेकिन फिर सोचा कि यह बदलाव गलत था। तो, आप इसे ROLLBACK करके हटा सकते हैं:

ROLLBACK;

इस कमांड को चलाने के बाद, डेटाबेस पहले जैसा ही रहेगा, जैसे कि आपने कोई बदलाव नहीं किया हो!

ROLLBACK का उद्देश्य डेटाबेस की सुरक्षा और स्थिरता बनाए रखना है, ताकि गलती होने पर डेटा की गलतियाँ ठीक की जा सकें।

आशा है अब यह समझ में आ गया होगा! 😊

SAVEPOINT

SAVEPOINT SQL का एक कमांड है, जिसका उपयोग ट्रांजेक्शन के भीतर एक बिंदु (checkpoint) सेट करने के लिए किया जाता है। जब आप किसी ट्रांजेक्शन में कई बदलाव कर रहे होते हैं और चाहते हैं कि आप उन बदलावों को बाद में वापस (ROLLBACK) कर सकें, तो SAVEPOINT का उपयोग किया जाता है।

आसान शब्दों में:

SAVEPOINT एक बिंदु सेट करता है, जहां से आप ट्रांजेक्शन को वापस (rollback) कर सकते हैं अगर किसी भी स्थिति में बदलाव गलत हो जाए या किसी कारण से आपको उसे रद्द करना पड़े।

उदाहरण:

मान लीजिए आप एक ट्रांजेक्शन में डेटा डाल रहे हैं, और आप चाहते हैं कि अगर कुछ गलत हो जाए तो आप कुछ बदलावों को वापस कर सकें:

SAVEPOINT my_savepoint;

यहां, “my_savepoint” नामक एक बिंदु सेट किया गया है, जहां से आप बाद में ROLLBACK कर सकते हैं।

जब ROLLBACK किया जाता है:

अगर ट्रांजेक्शन में कोई समस्या आती है, तो आप उस SAVEPOINT से वापस लौट सकते हैं:

ROLLBACK TO my_savepoint;

यह ट्रांजेक्शन को “my_savepoint” बिंदु तक वापस ले आएगा और उसके बाद किए गए सभी बदलाव रद्द कर देगा।

SAVEPOINT का उद्देश्य:

  • एक ट्रांजेक्शन में बदलाव करते समय, आप कुछ महत्वपूर्ण बिंदुओं पर नियंत्रण बनाए रखते हैं।
  • यदि ट्रांजेक्शन के बीच में कोई गलती होती है, तो आप आसानी से उस बिंदु से वापस लौट सकते हैं, बजाय पूरे ट्रांजेक्शन को रद्द करने के।

आशा है, अब SAVEPOINT को समझना आसान हो गया होगा! 😊

SET TRANSACTION

SET TRANSACTION SQL कमांड का उपयोग ट्रांजेक्शन के गुण (properties) को सेट करने के लिए किया जाता है, जैसे कि isolation level (डेटाबेस के बीच का संवाद स्तर) या read-write mode (पढ़ने और लिखने की अनुमति)। यह कमांड ट्रांजेक्शन के व्यवहार को नियंत्रित करती है, जिससे आपको ट्रांजेक्शन के संचालन के तरीके को कस्टमाइज़ करने का अवसर मिलता है।

आसान शब्दों में:

SET TRANSACTION का उपयोग आप किसी ट्रांजेक्शन की विशिष्ट विशेषताओं (जैसे सुरक्षा स्तर या अनुमतियाँ) को सेट करने के लिए करते हैं। यह आपको ट्रांजेक्शन के दौरान अन्य ट्रांजेक्शन्स से प्रभावित होने से बचने में मदद करता है।

प्रमुख गुण (properties) जो SET TRANSACTION से सेट किए जा सकते हैं:

  1. Isolation Level: यह ट्रांजेक्शन के बीच की इंटरैक्शन को नियंत्रित करता है, जैसे कि एक ट्रांजेक्शन को दूसरे ट्रांजेक्शन से कितना प्रभावित होना चाहिए।
    • SERIALIZABLE: सबसे सख्त isolation level है, जिसमें एक ट्रांजेक्शन को पूरी तरह से अलग रखा जाता है।
    • READ COMMITTED: ट्रांजेक्शन केवल वही डेटा पढ़ सकता है जो दूसरे ट्रांजेक्शन द्वारा “कमिट” किया गया हो।
    • READ UNCOMMITTED: यह सबसे कम सख्त है, जिसमें एक ट्रांजेक्शन अभी भी अनकमिट किए गए डेटा को पढ़ सकता है।
  2. Access Mode: यह ट्रांजेक्शन को पढ़ने या लिखने की अनुमति देने के लिए निर्धारित करता है।
    • READ WRITE: ट्रांजेक्शन डेटा को पढ़ने और लिखने की अनुमति देता है।
    • READ ONLY: ट्रांजेक्शन केवल डेटा को पढ़ सकता है, लिख नहीं सकता।

उदाहरण:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

यह कमांड ट्रांजेक्शन का isolation level SERIALIZABLE सेट करता है, यानी ट्रांजेक्शन पूरी तरह से अलग-अलग चलेंगे और एक ट्रांजेक्शन दूसरे ट्रांजेक्शन के डेटा में बदलाव नहीं कर सकेगा।

SET TRANSACTION READ ONLY;

यह कमांड ट्रांजेक्शन को केवल READ ONLY मोड में सेट करता है, यानी इसमें कोई डेटा परिवर्तन नहीं किया जा सकेगा।

SET TRANSACTION का उद्देश्य:

यह कमांड आपको ट्रांजेक्शन की प्रक्रिया को नियंत्रित करने में मदद करती है, जिससे आपके डेटाबेस का प्रदर्शन और सुरक्षा बेहतर होती है।

आशा है SET TRANSACTION को समझना अब आसान हो गया होगा! 😊

Leave a Comment