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

จะเกิดอะไรขึ้นกับธุรกรรม MySQL ปัจจุบันหากดำเนินการคำสั่ง START TRANSACTION ระหว่างธุรกรรมปัจจุบันนั้น


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

ตัวอย่าง

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

mysql> เลือก * จากเครื่องหมาย;+------+---------+-----------+-------+| รหัส | ชื่อ | เรื่อง | มาร์ค |+------+---------+-----------+-------+| 1 | อาราฟ | คณิตศาสตร์ | 50 || 1 | Harshit | คณิตศาสตร์ | 55 || 3 | Gaurav | คอมพ์ | 69 |+------+---------+-----------+-------+3 แถวในชุด (0.00 วินาที) mysql> เริ่มการทำธุรกรรม; แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> INSERT INTO Marks Values ​​(4, 'Rahul','History',40); Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> INSERT INTO Marks Values ​​( 5, 'Yashraj','English',48);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)mysql> เริ่มการทำธุรกรรม ตกลง สืบค้น 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> เลือก * จากเครื่องหมาย;+------+---------+-----------+-------+| รหัส | ชื่อ | เรื่อง | มาร์ค |+------+---------+-----------+-------+| 1 | อาราฟ | คณิตศาสตร์ | 50 || 1 | Harshit | คณิตศาสตร์ | 55 || 3 | Gaurav | คอมพ์ | 69 || 4 | ราหุล | ประวัติศาสตร์ | 40 || 5 | Yashraj | ภาษาอังกฤษ | 48 |+------+---------+-----------+-------+5 แถวในชุด (0.00 วินาที)