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

Điều gì xảy ra với giao dịch MySQL nếu phiên kết thúc giữa chừng?


Nếu phiên (session) kết thúc giữa giao dịch, MySQL sẽ rollback ngầm định (implicit rollback) giao dịch hiện tại và kết thúc nó. Tất cả thay đổi trong giao dịch bị xóa.

Ví dụ

Bảng marks ban đầu:

mysql> Select * from marks;
+------+---------+-----------+-------+
| Id   | Name    | Subject   | Marks |
+------+---------+-----------+-------+
|    1 | Aarav   | Maths     |    50 |
|    1 | Harshit | Maths     |    55 |
|    3 | Gaurav  | Comp      |    69 |
|    4 | Rahul   | History   |    40 |
|    5 | Yashraj | English   |    48 |
|    6 | Manak   | History   |    70 |
+------+---------+-----------+-------+

Bắt đầu giao dịch, cập nhật, thoát không commit:

mysql> START TRANSACTION;
mysql> UPDATE marks SET Name = 'Yash' Where id = 5;
Query OK, 1 row affected (0.06 sec)
mysql> quit;
Bye

Khởi động lại MySQL, kiểm tra bảng:

mysql> Select * from marks;
-- Yashraj KHÔNG bị đổi thành Yash (đã rollback)

Kết luận: Thoát phiên (quit/exit) giữa giao dịch = implicit rollback. Dữ liệu an toàn.