Không, các giao dịch không được khôi phục ngay khi có lỗi xảy ra. Nhưng bạn có thể đang sử dụng ứng dụng khách áp dụng chính sách này.
Ví dụ:nếu bạn đang sử dụng máy khách dòng lệnh mysql, thì nó thường dừng thực thi khi xảy ra lỗi và sẽ thoát. Việc thoát trong khi giao dịch đang diễn ra có thể khiến giao dịch đó được khôi phục lại.
Khi bạn đang viết ứng dụng của riêng mình, bạn có thể kiểm soát chính sách khi khôi phục, nhưng có một số ngoại lệ:
- Việc thoát (tức là ngắt kết nối khỏi cơ sở dữ liệu) luôn quay lại một giao dịch đang diễn ra
- Thời gian chờ bị khóa hoặc bị khóa hoàn toàn gây ra tình trạng quay ngược lại
Ngoài những điều kiện này, nếu bạn gọi một lệnh tạo ra lỗi, lỗi sẽ được trả về như bình thường và bạn có thể tự do làm bất cứ điều gì bạn muốn, kể cả việc thực hiện giao dịch.