เราสามารถทำงานกับธุรกรรมที่ซ้อนกันใน 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)