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

ผู้ใช้จะเริ่มต้นธุรกรรม MySQL ใหม่ได้อย่างไร


เมื่อรันคำสั่ง START TRANSACTION ผู้ใช้สามารถเริ่มธุรกรรม MySQL ใหม่ได้ ลักษณะการทำงานของธุรกรรมจะขึ้นอยู่กับโหมด SQL AUTOCOMMIT โหมดเริ่มต้นคือโหมด 'AUTOCOMMIT ON' ซึ่งคำสั่ง MySQL แต่ละคำสั่งถือเป็นธุรกรรมที่สมบูรณ์และกำหนดโดยค่าเริ่มต้นเมื่อเสร็จสิ้น เริ่มต้นได้โดยการตั้งค่าตัวแปรเซสชัน AUTOCOMMIT เป็น 1 ดังนี้ -

SET AUTOCOMMIT = 1

mysql> SET AUTOCOMMIT = 1;
Query OK, 0 rows affected (0.07 sec)

หากผู้ใช้ต้องการเปลี่ยนพฤติกรรมประเภทนี้ของธุรกรรม MySQL เขา/เธอสามารถตั้งค่าโหมด 'AUTOCOMMIT OFF' SQL ซึ่งชุดคำสั่ง MySQL ที่ตามมาจะทำหน้าที่เหมือนธุรกรรมและไม่มีกิจกรรมใด ๆ เกิดขึ้นจนกว่าจะมีการออกคำสั่ง COMMIT อย่างชัดเจน ในโหมดนี้ คำสั่งปฏิบัติการครั้งแรกของเซสชันใหม่จะเริ่มต้นธุรกรรมหลายคำสั่งโดยปริยาย เริ่มต้นได้โดยการตั้งค่าตัวแปรเซสชัน AUTOCOMMIT เป็น 0 ดังนี้ -

SET AUTOCOMMIT = 0

mysql> SET AUTOCOMMIT = 0;
Query OK, 0 rows affected (0.00 sec)

สำหรับธุรกรรมใน InnoDB แทนที่จะใช้ SET AUTOCOMMIT =0 คอมมิทด้วย COMMIT สั่งการ.

ในโหมด SQL ทั้งสองแบบ ธุรกรรมจะเริ่มต้นด้วยคำสั่ง START TRANSACTION ดังนี้ -

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

อันที่จริง แบบสอบถามด้านบนแจ้ง MySQL ว่าคำสั่งที่ตามมาควรถือเป็นหน่วยงานเดียวจนกว่าธุรกรรมจะสิ้นสุดลง