Nếu câu lệnh vẫn đang chạy, bạn có thể sử dụng KILL QUERY <thread_id>
.
Nếu câu lệnh đã hoàn tất nhưng bạn vẫn chưa thực hiện giao dịch, bạn có thể sử dụng ROLLBACK
.
Nếu bản sao kê đã hoàn tất và giao dịch đã được cam kết (hoặc bạn chưa bắt đầu giao dịch) thì hãy khôi phục dữ liệu từ bản sao lưu gần đây nhất của bạn.
Ngoài ra, sau đây là một số lời khuyên mẹo để ngăn chặn loại tình huống này xảy ra ngay từ đầu:
- Khi viết XÓA hoặc CẬP NHẬT, luôn viết mệnh đề WHERE trước để bạn không quên.
- Kiểm tra mệnh đề WHERE của bạn trong câu lệnh SELECT để đảm bảo rằng bạn đang cập nhật các hàng chính xác.
- Nếu bạn biết rằng bạn chỉ nên cập nhật một hàng thì bạn có thể thêm LIMIT 1 vào bảng sao kê CẬP NHẬT của mình. Sau đó, nếu mặc dù sử dụng các kỹ thuật trên, bạn vẫn gặp lỗi thì ít nhất một hàng sẽ bị ảnh hưởng, không phải toàn bộ cơ sở dữ liệu.