在資料庫管理系統執行交易的過程中,共有三種情況會停止交易的執行,
1.交易成功 交易成功就是正常結束交易的執行,它是指交易的資料庫單元操作全部執行完成。以交易狀態來說,如果交易從啟動狀態開始,可以到達確認交易狀態,就表示交易成功。
2.交易失敗 交易失敗是送出放棄指令(Abort或Rollback)來結束交易的執行。以交易狀態來說,就是到達放棄或中止狀態。交易失敗分為兩種,如下:
• 放棄交易:交易本身因為條件錯誤、輸入錯誤資料或使用者操作而送出放棄指令(Abort或Rollback)來放棄交易的執行,正確的說,此時的交易是進入放棄狀態。
• 中止交易:因為系統負載問題或死結(Deadlock)情況,由資料庫管理系統送出放棄指令,讓交易進入中止狀態。
3.交易未完成 交易有可能因為系統錯誤、硬體錯誤或當機而停止交易的執行,因為沒有送出放棄指令,此時交易是尚未完成的中斷狀態,即只執行到一半就被迫中斷執行。 因為資料庫管理系統並不允許此情況發生,所以在重新啟動後,其回復處理(Recovery)機制會從中斷點開始,重新執行交易至交易成功或失敗來結束交易的執行。
資料來源:https://www.csie.sju.edu.tw/cm/course/db/ch12.pdf
如果是我盲達可能會說確認點與預期外的事故導致交易終止還有DDL&DCL指令插入導致終止..之類的