नीचे दिए गए तुलना चार्ट की सहायता से एसक्यूएल में कमिट और रोलबैक स्टेटमेंट के बीच के अंतर पर चर्चा करते हैं।
तुलना चार्ट
तुलना के लिए आधार | COMMIT | ROLLBACK |
---|---|---|
बुनियादी | COMMIT वर्तमान लेनदेन द्वारा किए गए संशोधनों को मान्य करता है। | रोलबैक वर्तमान लेनदेन द्वारा किए गए संशोधनों को मिटा देता है। |
प्रभाव | COMMIT स्टेटमेंट के निष्पादन के बाद, लेन-देन ROLLBACK नहीं हो सकता है। | एक बार ROLLBACK निष्पादित होने के बाद डेटाबेस लेन-देन के पहले स्टेटमेंट के निष्पादन से पहले यानी अपनी पिछली स्थिति में पहुंच जाता है। |
घटना | जब लेनदेन सफलतापूर्वक निष्पादित हो जाता है तो COMMIT होता है। | रोलबैक तब होता है जब लेनदेन को निष्पादन के बीच में रोक दिया जाता है। |
वाक्य - विन्यास | COMMIT; | ROLLBACK; |
COMMIT की परिभाषा
COMMIT एक SQL स्टेटमेंट है, जो लेनदेन के सफल समापन का संकेत देता है। जब भी कोई लेनदेन बिना किसी रुकावट के अपना निष्पादन पूरा करता है, तो लेनदेन द्वारा डेटाबेस में किए गए संशोधन स्थायी हो जाते हैं। जिसका अर्थ है कि डेटाबेस अपने पिछले राज्यों को फिर से प्राप्त नहीं कर सकता है, जिसमें वह लेन-देन के पहले बयान के निष्पादन से पहले था।
COMMIT स्टेटमेंट का सिंटैक्स इस प्रकार है:
COMMIT;
लेन-देन समाप्त होने के अंतिम विवरण के रूप में लेनदेन आंशिक रूप से प्रतिबद्ध हो जाता है। इसके बाद, पुनर्प्राप्ति प्रोटोकॉल सुनिश्चित करते हैं, कि सिस्टम विफलता भी, संशोधनों को स्थायी बनाने के लिए डेटाबेस में असमर्थ होगा। जैसे ही यह जांच की जाती है, लेनदेन का प्रतिबद्ध बिंदु पहुंच गया है और अंत में लेनदेन एक प्रतिबद्ध स्थिति में प्रवेश करता है। एक बार जब लेनदेन एक प्रतिबद्ध स्थिति में प्रवेश करता है, तो इसे रोलबैक नहीं किया जा सकता है, और एक नया लेनदेन शुरू होता है।
रोलबैक की परिभाषा
COMMIT की तरह, ROLLBACK भी एक SQL स्टेटमेंट है, और यह संकेत देता है कि लेनदेन सफलतापूर्वक पूरा नहीं हुआ है । इसलिए, लेन-देन द्वारा किए गए परिवर्तनों को पूर्ववत करने के लिए लेन-देन रद्द कर दिया जाता है। रोलबैक के निष्पादन के बाद, कोई भी संशोधन, वर्तमान लेनदेन द्वारा नहीं किया जाता है।
रोलबैक का सिंटैक्स निम्नानुसार है:
रोलबैक;
लेन-देन के निष्पादन के दौरान त्रुटि होने पर लेन-देन रोलबैक आवश्यक हो जाता है। त्रुटि सिस्टम विफलता, पावर आउटेज, लेन-देन विवरणों में त्रुटि, सिस्टम क्रैश हो सकती है। बिजली की विफलता या सिस्टम क्रैश के मामले में, सिस्टम के दोबारा चालू होने पर रोलबैक होता है। रोलबैक केवल तभी हो सकता है जब COMMIT को अभी तक निष्पादित नहीं किया गया है।
SQL में COMMIT और ROLLBACK के बीच मुख्य अंतर
- SQL के COMMIT और ROLLBACK कथनों के बीच मुख्य अंतर यह है कि COMMIT स्टेटमेंट का निष्पादन वर्तमान लेनदेन द्वारा किए गए सभी संशोधन को स्थायी बना देता है। दूसरी ओर, ROLLBACK का निष्पादन वर्तमान लेनदेन द्वारा किए गए सभी संशोधन को मिटा देता है।
- एक बार जब COMMIT स्टेटमेंट ने लेन-देन के संशोधन को निष्पादित कर दिया है तो रोलबैक नहीं किया जा सकता है। हालाँकि, एक बार जब रोलबैक स्टेटमेंट निष्पादित हो जाता है तो डेटाबेस अपनी पिछली स्थिति में पहुँच जाता है।
- COMMIT लेन-देन विवरणों के सफल निष्पादन पर निष्पादित होता है। हालाँकि, लेन-देन तब निष्पादित किया जाता है जब लेनदेन सफलतापूर्वक निष्पादित नहीं होता है।
निष्कर्ष:
यह सुनिश्चित करने के लिए कि लेनदेन में किए गए परिवर्तन स्थायी रूप से डेटाबेस में सहेजे गए हैं, लेनदेन के सफल होने के बाद COMMIT का उपयोग करें। यदि लेन-देन के दौरान लेनदेन में कोई त्रुटि होती है, तो लेनदेन द्वारा किए गए परिवर्तनों को समाप्त करने के लिए, रोलबैक का उपयोग किया जाता है।