使用事務解決銀行轉賬問題
……關鍵語句講解………
begin transaction
/*--定義變數,用於累計事務執行過程中的錯誤--*/
declare @errorsum int
set @errorsum=0 --初始化為0,即無錯誤
/*--轉賬:張三的賬戶少1000元,李四的賬戶多1000元*/
update bank set currentmoney=currentmoney-1000
where customername='張三'
set @errorsum=@errorsum+@@error
update bank set currentmoney=currentmoney+1000
where customername='李四'
set @errorsum=@errorsum+@@error --累計是否有錯誤
if @errorsum<>0 --如果有錯誤
begin
print '交易失敗,回滾事務'
rollback transaction
endelse
begin
print '交易成功,提交事務,寫入硬碟,永久的儲存'
commit transaction
endgo
print '檢視轉賬事務後的餘額'
select * from bank
go
mysql資料庫事務
維基百科 事務是資料庫管理系統 dbms 執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。只有innodb和ndb 1 原子性 atomicity 事務中的全部操作在資料庫中是不可分割的,要麼全部完成,要麼全部不執行。2 一致性 consistency 幾個並行執行的事務,其執行結果必須與...
MySQL資料庫事務
文章出處 只有innodb引擎支援事務,下邊的內容均以innodb引擎為預設條件 1 髒讀 2 不可重複讀 3 幻讀 1 讀未提交 read uncommitted 可能產生髒讀 不可重複讀 幻讀 2 讀已提交 read committed 避免了髒讀,可能產生不可重複讀 幻讀 3 可重複讀 rep...
mysql資料庫事務
原子性 乙個事務 transaction 中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節 一致性 在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞 隔離性 資料庫允許多個併發事務同時對其資料進行讀寫和修改的能力,隔離性可以防止多個事務併發執行時由於交叉執行而導致資料的不一致...