簡體   English   中英

交易提交?

[英]transaction commit?

有人可以解釋何時以及為什么使用commit嗎? http://msdn.microsoft.com/en-us/library/ms190295.aspx

1)更新tableX recordM

2)在表Y記錄中更新N

3)更新tableZ記錄O

4)在這里使用提交

..

如果2)失敗並且recordN沒有更新,則回滾而不進行3)和4)提交? 那是你會用它的地方嗎?

每當一個或多個操作(事務)完成並且您希望更改數據庫時,請使用commit。

在您的示例中,如果2)失敗,則應進行回滾,並且操作1)將撤消操作,以便使數據庫保持一致

例如。 如果您有書店系統,則每當出售書籍時,都必須執行以下操作:

    • 打折股票
    • 創建銷售歷史
    • 收取客戶卡

您要么希望所有操作成功完成,要么什么都不做。 所以你應該:

  1. 開始翻譯
  2. 執行步驟1,2,3
  3. 承諾

如果有問題,請全部回滾(撤消)

當您要將對偶操作視為一項操作時,請始終使用提交。 這意味着當至少一個失敗時,所有錯誤都將恢復為提交前的狀態。

這非常有用,因為某些動作應視為原子操作,例如。 銀行業務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM