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

Giao dịch đường ray

Nếu bạn có hỗn hợp mã cần giao dịch rõ ràng và mã có thể dựa vào tự động gửi, có lẽ bạn không nên tắt tự động gửi cho tất cả các kết nối. Bạn đang đi đúng hướng khi tự hỏi liệu điều này có ảnh hưởng đến mã khác hay không. Nếu bạn tắt tính năng tự động gửi, nhưng mã khác không biết rằng nó phải cam kết thực hiện công việc của nó, thì đó sẽ là một vấn đề. Công việc chưa được chấp nhận sẽ được khôi phục khi kết nối đóng.

Bạn nên biết rằng công cụ lưu trữ mặc định cho MySQL là MyISAM , không hỗ trợ giao dịch nào cả. Khi bạn thực hiện thay đổi đối với bảng sử dụng MyISAM, các thay đổi sẽ được cam kết ngay lập tức, bất kể yêu cầu rõ ràng của bạn để bắt đầu và kết thúc giao dịch và bất kể trạng thái tự động gửi. Vì vậy, bạn sẽ không thể quay lại bất kể điều gì, trừ khi bạn tạo bảng của mình bằng InnoDB công cụ lưu trữ (hoặc các công cụ lưu trữ an toàn cho giao dịch khác như BDB ).

Điều đó không cần thiết để tắt chế độ tự động gửi để sử dụng các giao dịch trong MySQL. Chỉ cần bắt đầu một giao dịch một cách rõ ràng. Các câu lệnh SQL sau sẽ là một phần của giao dịch cho đến khi bạn cam kết hoặc khôi phục giao dịch đó, bất kể giá trị của tự động gửi trên kết nối hiện tại của bạn.

http://dev.mysql.com/doc/refman/5.0 /en/commit.html nói:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tự động xóa các địa chỉ email bị trả lại khỏi cơ sở dữ liệu?

  2. Truy vấn con trả về giải pháp nhiều hơn 1 hàng cho truy vấn cập nhật bằng cách sử dụng câu lệnh select

  3. Trong MySQL, tôi có nên trích dẫn số hay không?

  4. Làm thế nào để thực hiện một JOIN từ hai cột khác nhau đến cùng một cột trên một bảng riêng biệt

  5. Di chuyển MySQL sang PostgreSQL trên AWS RDS, Phần 3