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

เราจะใช้ธุรกรรมแบบซ้อนที่อนุญาตใน MySQL ได้อย่างไร


เราสามารถอนุญาตธุรกรรมหลายรายการด้วยความช่วยเหลือของคำสั่ง START และ SAVEPOINT ให้เราสร้างตารางด้วยคำสั่ง CREATE

การสร้างตาราง

mysql> สร้างตาราง transactionDemo-> (-> id int auto_increment,-> คีย์หลัก (id)-> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.76 วินาที)

หลังจากนั้น ฉันจะเริ่มการทำธุรกรรมโดยใช้คำสั่ง START -

mysql> เริ่มทำธุรกรรม ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

หลังจากนั้นฉันกำลังแทรกบันทึกต่อไปนี้ด้วยความช่วยเหลือของคำสั่ง INSERT -

mysql> INSERT ลงในค่าทรานแซกชันเดโม ();เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.04 วินาที)

เราสามารถแสดงบันทึกโดยใช้คำสั่ง SELECT ได้ดังนี้ −

mysql> SELECT *จาก transactionDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+| id |+---+| 1 |+----+1 แถวในชุด (0.00 วินาที)

หลังจากนั้น ฉันกำลังบันทึกข้อความค้นหานี้ด้วยความช่วยเหลือของ SAVEPOINT แบบสอบถามมีดังต่อไปนี้ −

mysql> SAVEPOINT t2;

แทรกบันทึก

mysql> INSERT ลงในค่า transactionDemo ();เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

แสดงระเบียนทั้งหมดโดยใช้คำสั่ง SELECT -

mysql> SELECT *จาก transactionDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+| id |+---+| 1 || 2 |+----+2 แถวในชุด (0.00 วินาที)

ตอนนี้ เราสามารถย้อนกลับธุรกรรมแรกได้ -

mysql> ROLLBACK TO t2; Query OK, 0 แถวได้รับผลกระทบ (0.03 วินาที)

ตอนนี้ เราสามารถแสดงธุรกรรมที่บันทึกไว้ก่อนหน้านี้ -

mysql> SELECT * จาก transactionDemo;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+| id |+---+| 1 |+----+1 แถวในชุด (0.00 วินาที)