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

วิธีทำ START TRANSACTION ภายใน MySQL Stored Procedure


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

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

ตัวอย่าง

mysql> Delimiter // 
mysql> Create Procedure st_transaction() 
    -> BEGIN 
    -> START TRANSACTION; 
    -> INSERT INTO employee.tbl(name) values ('Saurabh'); 
    -> END // 
Query OK, 0 rows affected (0.00 sec)

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

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