निम्नलिखित तरीके हैं जिनकी सहायता से वर्तमान MySQL लेनदेन को परोक्ष रूप से समाप्त किया जा सकता है -
डीडीएल स्टेटमेंट चलाकर
वर्तमान MySQL लेनदेन परोक्ष रूप से समाप्त हो जाएगा और किसी भी DDL स्टेटमेंट जैसे CREATE या DROP डेटाबेस, क्रिएट, ALTER या DROP टेबल या स्टोर किए गए रूटीन को चलाकर परिवर्तन किए जाएंगे। ऐसा इसलिए है क्योंकि, MySQL में, इन कथनों को वापस नहीं लाया जा सकता है।
उदाहरण
mysql> START TRANSACTION;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)mysql> INSERT INTO MARKS Values(3,'गौरव', 'Comp',69);क्वेरी ओके, 1 पंक्ति प्रभावित (0.26 सेकंड) mysql> तालिका छात्र बनाएं (आईडी int, नाम वर्चर (10),); क्वेरी ठीक है, 0 पंक्तियां प्रभावित (0.84 सेकेंड)
लेन-देन के बीच में हम एक DDL स्टेटमेंट चलाते हैं इसलिए यह ट्रांजेक्शन परोक्ष रूप से समाप्त हो जाएगा। MySQL सभी परिवर्तनों को सहेज लेगा और इसे वापस नहीं लाया जा सकता है। हम इसे निम्नलिखित परिणाम सेट की सहायता से देख सकते हैं -
mysql> रोलबैक;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)mysql> मार्क्स से * चुनें;+------+--------+---------- ---+----------+| आईडी | नाम | विषय | मार्क्स |+----------+------------+----------+----------+| 1 | आरव | गणित | 50 || 1 | हर्षित | गणित | 55 || 3 | गौरव | कॉम्प | 69 |+----------+------------+-----------+----------+3 पंक्तियों में सेट (0.00 सेकंड)पूर्व>क्लाइंट सत्र को डिस्कनेक्ट करके
क्लाइंट सत्र को डिस्कनेक्ट करने से वर्तमान सत्र समाप्त हो जाएगा और इस मामले में, परिवर्तन वापस ले लिए जाएंगे।
क्लाइंट सत्र को समाप्त करके
क्लाइंट सत्र को समाप्त करने से वर्तमान सत्र भी अप्रत्यक्ष रूप से समाप्त हो जाएगा और इस मामले में, परिवर्तन भी वापस ले लिए जाएंगे।
START TRANSACTION कमांड द्वारा
यदि हम START TRANSACTION कमांड चलाएंगे तो वर्तमान लेनदेन परोक्ष रूप से समाप्त हो जाएगा। इस मामले में, परिवर्तन किए जाएंगे।
उदाहरण
mysql> START TRANSACTION;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)mysql> INSERT INTO Marks Value(4, 'Rahul','History',40);क्वेरी ओके, 1 पंक्ति प्रभावित (0.00 सेकंड)mysql> INSERT INTO Marks Value(5, 'Yashraj','English',48);क्वेरी ओके, 1 रो प्रभावित (0.00 सेकंड)mysql> स्टार्ट ट्रांजेक्शन;क्वेरी ओके, 0 रो प्रभावित (0.00 सेकेंड)इस उदाहरण में, START TRANSACTION कथन लेन-देन को परोक्ष रूप से समाप्त कर देगा और परिवर्तन किए जाएंगे।
mysql> मार्क्स में से * चुनें; आईडी | नाम | विषय | मार्क्स |+----------+------------+----------+----------+| 1 | आरव | गणित | 50 || 1 | हर्षित | गणित | 55 || 3 | गौरव | कॉम्प | 69 || 4 | राहुल | इतिहास | 40 || 5 | यशराज | अंग्रेज़ी | 48 |+----------+---------+-----------+----------+5 पंक्तियाँ सेट में (0.00 सेकंड)पूर्व>