मान लीजिए कि कोई एक क्वेरी विफल हो जाती है या त्रुटि उत्पन्न करती है और दूसरी क्वेरी (यों) को ठीक से निष्पादित किया गया है, MySQL अभी भी ठीक से निष्पादित क्वेरी (क्वेरी) के परिवर्तनों को प्रतिबद्ध करता है। इसे निम्नलिखित उदाहरण से समझा जा सकता है जिसमें हम निम्नलिखित डेटा वाली तालिका 'employee.tbl' का उपयोग कर रहे हैं -
उदाहरण
mysql> Select * from employee.tbl; +----+---------+ | Id | Name | +----+---------+ | 1 | Mohan | | 2 | Gaurav | | 3 | Sohan | | 4 | Saurabh | | 5 | Yash | +----+---------+ 5 rows in set (0.00 sec) mysql> Delimiter // mysql> Create Procedure st_transaction_commit_save() -> BEGIN -> START TRANSACTION; -> INSERT INTO employee.tbl (name) values ('Rahul'); -> UPDATE employee.tbl set name = 'Gurdas' WHERE id = 10; -> COMMIT; -> END // Query OK, 0 rows affected (0.00 sec)
अब, जब हम इस प्रक्रिया को लागू करते हैं, तो हम जानते हैं कि UPDATE क्वेरी एक त्रुटि उत्पन्न करेगी क्योंकि हमारे टेबल पर id =10 नहीं है। लेकिन चूंकि पहली क्वेरी सफलतापूर्वक निष्पादित होगी इसलिए COMMIT तालिका में परिवर्तनों को सहेज लेगा।
mysql> Delimiter ; mysql> Call st_transaction_commit_save()// Query OK, 0 rows affected (0.07 sec) mysql> Select * from employee.tbl; +----+---------+ | Id | Name | +----+---------+ | 1 | Mohan | | 2 | Gaurav | | 3 | Sohan | | 4 | Saurabh | | 5 | Yash | | 6 | Rahul | +----+---------+ 6 rows in set (0.00 sec)