Hãy để chúng tôi thảo luận về sự khác biệt giữa các câu lệnh Commit và ROLLBACK trong SQL với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.
Biểu đồ so sánh
Cơ sở để so sánh | CAM KẾT | ROLLBACK |
---|---|---|
Căn bản | CAM KẾT xác nhận các sửa đổi được thực hiện bởi giao dịch hiện tại. | ROLLBACK xóa các sửa đổi được thực hiện bởi giao dịch hiện tại. |
Hiệu ứng | Sau khi thực hiện câu lệnh CAMIT, giao dịch không thể là ROLLBACK. | Khi ROLLBACK được thực thi cơ sở dữ liệu đạt đến trạng thái trước đó, tức là trước khi thực hiện câu lệnh đầu tiên của giao dịch. |
Xảy ra | CAM KẾT xảy ra khi giao dịch được thực hiện thành công. | ROLLBACK xảy ra khi giao dịch bị hủy bỏ ở giữa thực thi. |
Cú pháp | CAM KẾT; | ROLLBACK; |
Định nghĩa của CAM KẾT
Commit là một câu lệnh SQL, báo hiệu việc hoàn thành giao dịch thành công . Bất cứ khi nào một giao dịch hoàn thành việc thực hiện mà không có bất kỳ gián đoạn nào, các sửa đổi được thực hiện cho cơ sở dữ liệu, bởi giao dịch sẽ trở thành vĩnh viễn. Điều đó có nghĩa là cơ sở dữ liệu không thể lấy lại trạng thái trước đó, trước khi thực hiện tuyên bố đầu tiên của giao dịch.
Cú pháp của câu lệnh CAMIT như sau:
CAM KẾT;
Khi tuyên bố cuối cùng của giao dịch kết thúc, giao dịch trở thành cam kết một phần . Tiếp theo, các giao thức khôi phục đảm bảo rằng, ngay cả một lỗi hệ thống, sẽ không thể không có cơ sở dữ liệu, để sửa đổi vĩnh viễn. Ngay khi điều này được kiểm tra, điểm cam kết của giao dịch đã đạt được và cuối cùng giao dịch chuyển sang trạng thái cam kết . Khi giao dịch chuyển sang trạng thái đã cam kết, nó không thể được khôi phục và giao dịch mới bắt đầu.
Định nghĩa của ROLLBACK
Giống như CAMIT, ROLLBACK cũng là một câu lệnh SQL và nó báo hiệu rằng giao dịch chưa được hoàn thành thành công . Do đó, giao dịch bị hủy bỏ để hoàn tác các thay đổi được thực hiện bởi giao dịch. Sau khi thực hiện ROLLBACK, không có sửa đổi, được thực hiện bởi giao dịch hiện tại được giữ lại.
Cú pháp của ROLLBACK như sau:
ROLLBACK;
Giao dịch ROLLBACK trở nên cần thiết nếu xảy ra lỗi trong quá trình thực hiện giao dịch. Lỗi có thể là lỗi hệ thống, mất điện, lỗi trong các báo cáo giao dịch, sự cố hệ thống. Trong trường hợp mất điện hoặc sự cố hệ thống, ROLLBACK xảy ra khi hệ thống khởi động lại. ROLLBACK chỉ có thể xảy ra nếu CAMIT chưa được thực thi.
Sự khác biệt chính giữa CAMIT và ROLLBACK trong SQL
- Sự khác biệt chính giữa các câu lệnh COMMIT và ROLLBACK của SQL là việc thực thi câu lệnh COMMIT làm cho tất cả các sửa đổi được thực hiện bởi giao dịch hiện tại trở thành vĩnh viễn. Mặt khác, việc thực hiện ROLLBACK xóa tất cả các sửa đổi được thực hiện bởi giao dịch hiện tại.
- Khi tuyên bố CAMIT đã thực hiện sửa đổi được thực hiện bởi giao dịch không thể là ROLLBACK. Tuy nhiên, một khi câu lệnh ROLLBACK được thực thi, cơ sở dữ liệu sẽ đạt đến trạng thái trước đó.
- CAM KẾT được thực hiện khi thực hiện thành công các báo cáo giao dịch. Tuy nhiên, ROLLBACK được thực thi khi giao dịch không được thực hiện thành công.
Phần kết luận:
Để đảm bảo rằng các thay đổi được thực hiện bởi giao dịch được lưu vĩnh viễn trong cơ sở dữ liệu, hãy sử dụng CAM KẾT sau khi hoàn tất giao dịch thành công. Trong trường hợp giao dịch phải đối mặt với bất kỳ lỗi nào trong khi thực hiện sau đó để hoàn tác các thay đổi được thực hiện bởi giao dịch, ROLLBACK được sử dụng.