Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql_query có cam kết mọi thứ không

Tiện ích mở rộng mysql cũ không có các chức năng dành riêng cho kiểm soát giao dịch, nhưng bạn có thể phát hành các câu lệnh SQL để thực hiện những gì bạn muốn.

Bạn có thể tắt hoàn toàn tự động gửi trong thời gian của một giao dịch chỉ bằng cách bắt đầu giao dịch:

mysql_query("START TRANSACTION");

Ngay sau khi bạn COMMIT hoặc ROLLBACK, chế độ tự động gửi sẽ trở về chế độ mặc định.

mysql_query("COMMIT"); // or ROLLBACK

Bạn có thể tắt tự động gửi cho cả phiên của mình bằng cách đặt một biến phiên:

mysql_query("SET autocommit=0");

Hoặc thay đổi nó trên toàn cầu trên phiên bản MySQL của bạn để nó thay đổi mặc định cho tất cả các phiên:

mysql_query("SET GLOBAL autocommit=0");

Hoặc đặt nó để thay đổi cài đặt chung khi khởi động dịch vụ MySQL bằng cách chỉnh sửa /etc/my.cnf:

[mysqld]
autocommit=0

Nếu bạn sử dụng MySQL 5.1, bạn phải làm điều này hơi khác một chút:

[mysqld]
init_connect='SET autocommit=0'

Có thể bạn đã biết, nhưng cần nhắc lại rằng các giao dịch chỉ có ý nghĩa nếu bạn đang sử dụng bảng InnoDB. Bảng MyISAM không hỗ trợ các giao dịch, vì vậy chúng luôn tự động gửi bất kể cài đặt của bạn. Tương tự với một số công cụ lưu trữ khác, bao gồm MEMORY và CSV.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL / PHP - Tìm các khoảng thời gian khả dụng

  2. Kết nối MySQL Workbench trên WSL MySQL?

  3. Thư viện Php Mô hình Tập hợp lồng nhau

  4. MySQL với MAMP không hoạt động với OSX Yosemite 10.10

  5. Câu lệnh được soạn sẵn trong WordPress với điều kiện IN ()