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

Cách loại bỏ vĩnh viễn các thay đổi trong giao dịch hiện tại khỏi cơ sở dữ liệu MySQL

Ta sử dụng lệnh ROLLBACK để loại bỏ vĩnh viễn các thay đổi được thực hiện trong giao dịch hiện tại khỏi cơ sở dữ liệu MySQL. Giả sử chạy một số câu lệnh DML cập nhật dữ liệu, thì ROLLBACK sẽ hủy bỏ các cập nhật đó hoàn toàn.

Ví dụ

Giả sử bảng Marks có dữ liệu như sau, ta thực hiện giao dịch và lệnh ROLLBACK:

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 2    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO Marks Values(3, 'Rahul','History',40);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Marks Values(4, 'Yashraj','English',48);
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)

Lệnh ROLLBACK kết thúc giao dịch một cách rõ ràng và các thay đổi bị hủy bỏ (rolled back), tức là bị loại bỏ vĩnh viễn khỏi cơ sở dữ liệu.

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
| 1    | Aarav   | Maths   | 50    |
| 2    | Harshit | Maths   | 55    |
+------+---------+---------+-------+
2 rows in set (0.00 sec)