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

Làm thế nào các thay đổi, được thực hiện trong giao dịch hiện tại, có thể bị loại bỏ vĩnh viễn khỏi cơ sở dữ liệu MySQL?

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

Ví dụ

Giả sử chúng ta có dữ liệu sau trong bảng "mark" và chúng ta đã áp dụng giao dịch và lệnh ROLLBACK như sau -

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)

Trong ví dụ này, câu lệnh ROLLBACK sẽ kết thúc giao dịch một cách rõ ràng và các thay đổi sẽ được khôi phục, 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)