เราสามารถทำงานกับธุรกรรมที่ซ้อนกันใน MySQL ด้วยความช่วยเหลือของ SAVEPOINT
ขั้นแรก สร้างตาราง หลังจากนั้นเริ่มทำรายการ
ตอนนี้ แทรกระเบียนในตารางที่สร้างด้านบน ใช้คำสั่ง SAVEPOINT เพื่อตั้งค่าจุดบันทึกธุรกรรมที่มีชื่อด้วยชื่อของตัวระบุ
นี่คือขั้นตอนทั้งหมดที่แสดงในรูปแบบของแบบสอบถาม -
สร้างตาราง
mysql> create table NestedTransactionDemo -> ( -> Name varchar(200) -> ); Query OK, 0 rows affected (0.63 sec)
เริ่มการทำธุรกรรม -
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
ตอนนี้ แทรกระเบียนลงในตาราง
mysql> insert into NestedTransactionDemo values('John');
Query OK, 1 row affected (0.04 sec) แสดงบันทึกที่เพิ่มด้านบน −
mysql> select *from NestedTransactionDemo; +------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec)
ให้เราเริ่มต้นด้วยการทำธุรกรรมเพื่อสร้างธุรกรรมที่ซ้อนกัน -
mysql> savepoint transaction2;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into NestedTransactionDemo values('David');
Query OK, 1 row affected (0.00 sec)
mysql> select *from NestedTransactionDemo;
+-------+
| Name |
+-------+
| John |
| David |
+-------+
2 rows in set (0.00 sec)
mysql> rollback to transaction2;
Query OK, 0 rows affected (0.00 sec)
mysql> select *from NestedTransactionDemo;
+------+
| Name |
+------+
| John |
+------+
1 row in set (0.00 sec)
mysql> rollback to transaction2;
Query OK, 0 rows affected (0.00 sec)