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

ผู้ใช้จะยุติธุรกรรม MySQL ปัจจุบันโดยปริยายได้อย่างไร


ต่อไปนี้คือวิธีที่ธุรกรรม MySQL ปัจจุบันสามารถยุติได้โดยปริยาย -

โดยการรันคำสั่ง DDL

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

ตัวอย่าง

mysql> เริ่มการทำธุรกรรม แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> INSERT INTO MARKS Values ​​(3,'gaurav','Comp',69);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 |+------+---------+-----------+-------+3 แถวในชุด (0.00 วินาที) 

โดยการยกเลิกการเชื่อมต่อเซสชันไคลเอ็นต์

การยกเลิกการเชื่อมต่อเซสชันไคลเอ็นต์จะสิ้นสุดเซสชันปัจจุบันโดยปริยาย และในกรณีนี้ การเปลี่ยนแปลงจะถูกย้อนกลับ

โดยการฆ่าเซสชันไคลเอ็นต์

การฆ่าเซสชันไคลเอ็นต์จะเป็นการสิ้นสุดเซสชันปัจจุบันโดยปริยาย และในกรณีนี้ การเปลี่ยนแปลงจะถูกย้อนกลับด้วย

โดยคำสั่ง START TRANSACTION

ธุรกรรมปัจจุบันจะสิ้นสุดโดยปริยายหากเราจะเรียกใช้คำสั่ง START TRANSACTION ในกรณีนี้ การเปลี่ยนแปลงจะมีผล

ตัวอย่าง

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 วินาที)