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

จะเกิดอะไรขึ้นกับธุรกรรม MySQL ปัจจุบันหากเซสชันสิ้นสุดในระหว่างธุรกรรม


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

ตัวอย่าง

สมมติว่าเรามีค่าต่อไปนี้ในตาราง 'เครื่องหมาย'

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

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