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

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


ธุรกรรม MySQL ปัจจุบันจะถูกคอมมิตและสิ้นสุดเมื่อคำสั่ง DDL ใดๆ เช่น ฐานข้อมูล CREATE หรือ DROP, ตาราง Create, ALTER หรือ DROP หรือรูทีนที่เก็บไว้ถูกดำเนินการในช่วงกลางของปัจจุบัน ธุรกรรม. การเปลี่ยนแปลงฐานข้อมูลทั้งหมดที่ทำในธุรกรรมปัจจุบันจะเป็นแบบถาวรและไม่สามารถย้อนกลับได้

ตัวอย่าง

mysql> เริ่มต้นการทำธุรกรรม แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> INSERT INTO MARKS Values ​​(6,'Manak','History',70);Query OK, 1 แถวได้รับผลกระทบ (0.26 วินาที)mysql> สร้างตารางนักเรียน(id int ชื่อ Varchar(10),);แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.84 วินาที)

ดังที่เราเห็นในตัวอย่างข้างต้น คำสั่ง DDL ได้รับการดำเนินการระหว่างธุรกรรม ดังนั้นธุรกรรมนี้จะสิ้นสุดโดยปริยาย MySQL จะบันทึกการเปลี่ยนแปลงทั้งหมดและไม่สามารถย้อนกลับได้ เราสามารถสังเกตได้ด้วยความช่วยเหลือของชุดผลลัพธ์ต่อไปนี้ −

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