亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建數據庫事務并稍后提交/回滾

創建數據庫事務并稍后提交/回滾

Go
九州編程 2022-07-11 14:38:26
我們可以稍后創建數據庫事務并提交/回滾嗎?我的意思是我們不在同一臺機器/主機/服務器上提交/回滾。假設我們返回事務并讓其他人根據事務 ID 決定提交或回滾。我們如何在 Go 和 sql 庫中做到這一點?
查看完整描述

1 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

不。

事務允許以原子方式執行一系列命令,例如,無需另一個命令獲取半更新的數據,并且無需另一個命令更改該系列命令中的底層數據。

這是您希望快速結束并完成的事情,因為它們鎖定了基礎表。

想象一下,如果您的事務是在表 A 中插入一行。您啟動事務,插入行,然后不提交或回滾。在您這樣做之前,沒有其他人可以使用表 A(除非在特殊情況下)。他們會坐在那里等待(阻塞)。如果并發事務嘗試以不同的順序將數據放入表中,您也可能會遇到死鎖 - 其中事務會自動回滾而無需用戶輸入。

Brent Ozar有一個很棒的視頻來解釋和展示死鎖- 值得單獨觀看,但也演示了如果你不提交交易會發生什么。

如果您想要一個排隊或批準更改的機制,您需要先構建它,例如,

  • 將更改放入“隊列”以便稍后完成,或

  • 進行數據更改,但在相關表的列中將它們標記為“草稿”。然后,您的其余代碼必須包括是否要包含草稿數據。

tl;dr 版本:數據庫中的事務是一種數據級功能,可確保您的數據保持一致。使用批準/等是在業務邏輯級別。


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號