Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thực hiện START TRANSACTION trong MySQL stored procedure

START TRANSACTION bắt đầu giao dịch, tắt chế độ autocommit.

Ví dụ thủ tục chỉ INSERT trong transaction (chưa COMMIT):

mysql> SELECT * FROM employee.tbl;
+----+---------+
| Id | Name    |
+----+---------+
| 1  | Mohan   |
| 2  | Gaurav  |
| 3  | Rahul   |
+----+---------+

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)

Gọi thủ tục:

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 |
+----+---------+

Lưu ý: Nếu không COMMIT/ROLLBACK và session kết thúc, thay đổi có thể bị rollback tùy cấu hình. Nên luôn dùng COMMIT/ROLLBACK rõ ràng.