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

Cách kết thúc giao dịch MySQL ngầm định (implicitly)


Giao dịch MySQL kết thúc ngầm định trong các trường hợp sau:

1. Chạy câu lệnh DDL

Các câu lệnh CREATE, DROP database/table/stored routine không thể rollback, nên kết thúc giao dịch hiện tại và commit thay đổi.

mysql> START TRANSACTION;
mysql> INSERT INTO MARKS Values(3,'gaurav','Comp',69);
mysql> Create table student(id int, Name Varchar(10));
-- Giao dịch kết thúc ngầm định, INSERT được commit

mysql> Rollback; -- Không hiệu lực
mysql> select * from marks; -- Gaurav vẫn có mặt

2. Ngắt kết nối client (disconnect)

Kết thúc ngầm định, thay đổi bị rollback.

3. Kill phiên client

Tương tự ngắt kết nối, thay đổi bị rollback.

4. Chạy START TRANSACTION mới

Kết thúc giao dịch cũ ngầm định và commit thay đổi, bắt đầu giao dịch mới.

mysql> START TRANSACTION;
mysql> INSERT INTO Marks Values(4, 'Rahul','History',40);
mysql> INSERT INTO Marks Values(5, 'Yashraj','English',48);
mysql> START TRANSACTION; -- Giao dịch 1 kết thúc, commit 2 INSERT

mysql> select * from marks; -- Rahul, Yashraj đã có trong bảng