Nếu bạn đang ở trên một MySQL gần đây 5.1, điều này sẽ làm việc:
HIỂN THỊ ENGINE InnoDB TÌNH TRẠNG bao gồm một danh sách các giao dịch hoạt động cho động cơ InnoDB. Mỗi là tiền tố với một id giao dịch và một quá trình id, và trông hơi như thế này:
---TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195, OS thread id
34831 rollback of SQL statement
MySQL thread id 18272
<query may be here>
Các chủ đề MySQL id sẽ tương ứng với CONNECTION_ID() của phiên của bạn, mà bạn có thể nhận được từ HIỂN THỊ ĐẦY ĐỦ processlist hoặc information_schema .processlist, vì vậy bạn có thể xác định giao dịch nào là của bạn. Bạn sẽ phải phân tích cú pháp văn bản và phân tích cú pháp truy vấn ra khỏi nó, nếu nó hiện diện.
Nếu chưa đủ, bạn có thể thử hàm SET @PROGRESS = @PROGRESS + 1 trước mỗi câu lệnh ROLLBACK, sau đó chọn SELECT @PROGRESS từ DUAL ở cuối truy vấn của bạn để tìm hiểu xem giao dịch đã diễn ra như thế nào nhấn một rollback.
Nguồn
2010-07-14 16:51:22
Tôi nghĩ cách tự nhiên là đăng nhập trước. Nếu bạn không biết những gì giao dịch đang làm, làm thế nào bạn có thể biết rằng bạn muốn quay trở lại? –