Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để người dùng có thể bắt đầu giao dịch MySQL mới?


Bằng cách chạy lệnh BẮT ĐẦU GIAO DỊCH, người dùng có thể bắt đầu giao dịch MySQL mới. Hành vi của giao dịch sẽ phụ thuộc vào chế độ TỰ ĐỘNG CỦA SQL. Chế độ mặc định là chế độ ‘AUTOCOMMIT ON’ trong đó mỗi câu lệnh MySQL được coi là một giao dịch hoàn chỉnh và được cam kết theo mặc định khi nó kết thúc. Nó có thể được bắt đầu bằng cách đặt biến phiên AUTOCOMMIT thành 1 như sau -

SET AUTOCOMMIT = 1

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

Nếu người dùng muốn thay đổi loại hành vi như vậy của giao dịch MySQL thì họ có thể đặt chế độ SQL ‘AUTOCOMMIT OFF’ trong đó chuỗi câu lệnh MySQL tiếp theo hoạt động giống như một giao dịch và không có hoạt động nào được thực hiện cho đến khi một câu lệnh COMMIT rõ ràng được đưa ra. Trong chế độ này, câu lệnh thực thi đầu tiên của một phiên mới sẽ bắt đầu một cách ngầm định một giao dịch nhiều câu lệnh mới. Nó có thể được bắt đầu bằng cách đặt biến phiên AUTOCOMMIT thành 0 như sau -

SET AUTOCOMMIT = 0

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

Đối với Giao dịch trong InnoDB thay vì sử dụng SET AUTOCOMMIT =0, hãy cam kết với COMMIT yêu cầu.

Trong cả hai chế độ SQL, giao dịch sẽ được bắt đầu bằng lệnh BẮT ĐẦU GIAO DỊCH như sau -

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

Trên thực tế, truy vấn trên thông báo cho MySQL rằng các câu lệnh theo sau phải được coi là một đơn vị công việc duy nhất cho đến khi giao dịch kết thúc.