Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีทำ COMMIT ธุรกรรมภายใน MySQL Stored Procedure


ตามที่ทราบคำสั่ง START TRANSACTION จะเริ่มธุรกรรมและ COMMIT ใช้เพื่อยืนยันการเปลี่ยนแปลงใดๆ ที่ทำหลังจากเริ่มธุรกรรม ในตัวอย่างต่อไปนี้ เราสร้าง Stored Procedure พร้อม COMMIT ร่วมกับ START TRANSACTION ซึ่งจะแทรกเรคคอร์ดใหม่และ Commit การเปลี่ยนแปลงในตาราง employee.tbl ที่มีข้อมูลดังนี้:

mysql> Select * from employee.tbl; 
+----+---------+ 
| Id | Name    | 
+----+---------+ 
|  1 | Mohan   | 
|  2 | Gaurav  | 
|  3 | Rahul   | 
|  4 | Saurabh | 
+----+---------+ 
4 rows in set (0.00 sec)

ตัวอย่าง

mysql> Delimiter // 
mysql> Create Procedure st_transaction_commit() 
    -> BEGIN 
    -> START TRANSACTION; 
    -> INSERT INTO employee.tbl(name) values ('Yash'); 
    -> UPDATE employee.tbl set name = 'Sohan' WHERE id = 3; 
    -> COMMIT; 
    -> END // 
Query OK, 0 rows affected (0.03 sec)

ตอนนี้เมื่อเราเรียกใช้ Procedure นี้ มันจะแทรกและอัปเดตค่าในตาราง employee.tbl มันจะ Commit การเปลี่ยนแปลงด้วย

mysql> Delimiter ; 
mysql> Call st_transaction_commit(); 
Query OK, 0 rows affected (0.17 sec) 
mysql> Select * from employee.tbl; 
+----+---------+ 
| Id | Name    | 
+----+---------+ 
|  1 | Mohan   | 
|  2 | Gaurav  | 
|  3 | Sohan   | 
|  4 | Saurabh | 
|  5 | Yash    | 
+----+---------+ 
5 rows in set (0.00 sec)