Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การเปลี่ยนแปลงที่เกิดขึ้นในธุรกรรมปัจจุบันสามารถกำจัดออกจากฐานข้อมูล MySQL อย่างถาวรได้อย่างไร


เราสามารถใช้คำสั่ง ROLLBACK เพื่อกำจัดการเปลี่ยนแปลงที่ทำในธุรกรรมปัจจุบันอย่างถาวรจากฐานข้อมูล MySQL สมมติว่าถ้าเราเรียกใช้คำสั่ง DML และอัปเดตวัตถุข้อมูลบางรายการ คำสั่ง ROLLBACK จะลบการอัปเดตเหล่านี้ออกจากฐานข้อมูลอย่างถาวร

ตัวอย่าง

สมมติว่าเรามีข้อมูลต่อไปนี้ในตาราง 'เครื่องหมาย' และเราใช้คำสั่งธุรกรรมและ 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)

ในตัวอย่างนี้ คำสั่ง ROLLBACK จะยุติธุรกรรมอย่างชัดเจน และการเปลี่ยนแปลงจะถูกย้อนกลับ กล่าวคือ ถูกกำจัดออกจากฐานข้อมูลอย่างถาวร

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