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

ผู้ใช้จะยุติธุรกรรม MySQL ปัจจุบันอย่างชัดเจนได้อย่างไร


ต่อไปนี้เป็นวิธีที่ด้วยความช่วยเหลือซึ่งการทำธุรกรรม MySQL ปัจจุบันสามารถสิ้นสุดได้อย่างชัดเจน -

โดยคำสั่ง COMMIT

ธุรกรรมปัจจุบันจะสิ้นสุดลงอย่างชัดเจนหากเราจะเรียกใช้คำสั่ง COMMIT ในกรณีนี้ การเปลี่ยนแปลงจะมีผล

ตัวอย่าง

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

mysql> INSERT INTO Marks Values(1, 'Aarav','Maths',50);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(2, 'Harshit','Maths',55);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.06 sec)

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

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

โดยคำสั่ง ROLLBACK

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

ตัวอย่าง

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