สมมุติว่าแบบสอบถามตัวใดตัวหนึ่งล้มเหลวหรือสร้างข้อผิดพลาดและแบบสอบถามอื่นดำเนินการอย่างถูกต้อง 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)