मान लीजिए क्वेरीज में से एक विफल हो जाती है या त्रुटियां उत्पन्न करती है और अन्य क्वेरी (क्वेरीज) ठीक से निष्पादित होती हैं तो 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)