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

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


Giả sử nếu một phiên kết thúc ở giữa một giao dịch thì giao dịch MySQL hiện tại đó sẽ được MySQL khôi phục và kết thúc. Nó có nghĩa là tất cả các thay đổi cơ sở dữ liệu được thực hiện trong giao dịch hiện tại sẽ bị xóa. Nó được gọi là n lần khôi phục ngầm định khi phiên kết thúc.

Ví dụ

Giả sử chúng ta có các giá trị sau trong bảng "mark"

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    |
+------+---------+-----------+-------+
6 rows in set (0.00 sec)

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> UPDATE marks SET Name = ‘Yash’ Where id = 5;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> quit;
Bye

Trong ví dụ trên, sau khi cập nhật giá trị trong bảng, phiên được kết thúc bằng cách chạy câu lệnh bỏ. Khi chúng tôi kiểm tra bảng sau khi bắt đầu lại phiên, giá trị cập nhật đã được MySQL khôi phục vì phiên kết thúc ở giữa giao dịch.