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

Làm cách nào để xác định xem tôi đã ghi chưa cam kết trong một giao dịch MySQL hay chưa?

Đây là một câu hỏi khá thú vị. Tôi không nghĩ rằng có một cách chắc chắn để xác định việc phát hành cam kết sẽ tạo ra sự khác biệt trong phiên bạn đang chạy.

Bạn có thể thấy các giao dịch với show innodb status hoặc hiển thị trạng thái đổi mới của công cụ nhưng tôi không nghĩ rằng bạn có thể đưa ra cam kết đối với các giao dịch đó.

INNODB_TRX bảng trong information_schema sẽ hiển thị các chuyển đổi hiện đang thực hiện: https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html và một lần nữa, bạn không thể làm gì nhiều để ép buộc chúng. Bạn có thể khôi phục chúng bằng cách loại bỏ quy trình liên quan.

Nếu bạn đang chạy một giao dịch bằng BẮT ĐẦU GIAO DỊCH trong một thủ tục được lưu trữ, bạn có thể xử lý cam kết và khôi phục theo cách thủ công. Bạn thậm chí có thể đặt tự động gửi về 0 để kiểm soát thời điểm khôi phục và thời điểm cam kết.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tìm các hàng dữ liệu bị thiếu bằng SQL?

  2. Laravel:truy vấn kết hợp bên trái

  3. RDS proxy có ảnh hưởng đến tổng hợp phía ứng dụng hiện tại không?

  4. password_hash, password_verify, MySQL hiểu nhầm?

  5. Truyền tệp nhị phân từ MySQL để tải xuống bằng PHP