Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào chúng ta có thể thực hiện các giao dịch START bên trong thủ tục lưu trữ MySQL?


Như chúng ta biết giao dịch START sẽ bắt đầu giao dịch và đặt chế độ cam kết tự động thành tắt. Trong ví dụ sau, chúng tôi đã tạo một thủ tục được lưu trữ với một giao dịch START sẽ chèn một bản ghi mới vào table worker.tbl có dữ liệu sau -

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

Ví dụ

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)

Bây giờ khi chúng ta gọi thủ tục này, nó sẽ chèn giá trị vào bảng worker.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)