認識事務(學習筆記)

2021-10-06 13:32:35 字數 1159 閱讀 1418

資料庫事務(database transaction)是指作為單個邏輯工作單元執行的一系列操作,要麼完整地執行,要麼完全地不執行。 正常的情況下,這些操作將順利進行,最終交易成功,與交易相關的所有資料庫資訊也成功地更新。

為什麼需要資料庫事務?

好比生活轉賬,轉賬是生活中常見的操作,從a賬戶轉賬100元到b賬號。站在使用者角度而言,這是乙個邏輯上的單一操作,然而在資料庫系統中,至少會分成兩個步驟來完成:

1.將a賬戶的金額減少100元

2.將b賬戶的金額增加100元。

當這兩個操作同時完成,就是我們事務的實現

例項:(實現小楊給小崔轉賬100)

–開始事務

begin transaction tran_charge

–定義變數記錄錯誤數量

declare @err_nums int

set @err_nums=0

begin try

update customers set remain=remain-100 where id=3 set @err_nums=@err_nums+@@error

update customers set remain=remain+100 where id=4 set @err_nums=@err_nums+@@error

end try

begin catch

print 『錯誤編號:』+convert(varchar,error_number())+『錯誤』+error_message() set @err_nums=@err_nums+1

end catch

if(@err_nums>0)

rollback transaction tran_charge --回滾事務

else

commit transaction tran_charge --提交事務

此時可以得到

MySQL事務(一)認識事務

簡單來說,事務就是要保證一組資料庫操作,要麼全部完成,要麼全部失敗。資料庫中的資料是共享資源,因此資料庫系統通常要支援多個使用者的或不同應用程式的訪問,會出現併發訪問資料的現象。資料庫系統必須對這種併發操作提供一種相應的處理機制來保證,訪問彼此之間不受任何干擾,從而保證資料庫的正確性不受到破壞,這種...

學習事務筆記

事務 transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有乙個邏輯沒有執行成功,那麼都算失敗。所有的資料都回歸到最初的狀態 回滾 為什麼要有事務?為了確保邏輯的成功。例子 銀行的轉賬。指的是 事務中包含的邏輯,不可分割。指的是 事務執行前後。資料完整性 指的是 事務在執行期間不...

事務 學習筆記

講解事務前我們先來看一張圖 這張圖講述了資料庫的隔離級別和預防髒讀 不可重複讀,幻讀的對應關係。那麼mysql 預設的資料庫隔離級別是repeatable read 這個級別下就不會出現髒讀和不可重複讀。而oracle和sqlserver 的預設隔離級別是 read committed 這種級別不會...