學習筆記 事務的運用

2021-10-06 13:11:47 字數 1156 閱讀 1876

什麼是事務??

事務就是被繫結在一起作為乙個邏輯工作單元的sql語句組,如果任何乙個語句操作失敗那麼整個操作就被失敗,進而回滾到操作前狀態,或者是上個節點。為了確保要麼執行,要麼不執行,就可以使用事務。要將一組語句作為事務考慮,就需要通過acid測試,即原子性,一致性,隔離性和永續性。

--

-建立儲存過程

create proc cp_changgeaccount

( @idout int

, @idin int

, @remain

decimal(18

,2))

as--

-定義乙個變數,記錄錯誤數

declare @error_nums int

set @error_nums=0--

-開始事務

begin transaction tran_change --

---開始事務

begin try

update customerss set remain=

(remain-@remain)

where id=@idout

set @error_nums=@error_nums+@@error

update customerss set remain=

(remain+@remain)

where id=@idin

set @error_nums=@error_nums+@@error

end try

begin catch

set @error_nums=@error_nums+

1print '錯誤異常:'

+convert

(varchar,

error_number()

)+',錯誤訊息'

+error_message()

end catch

if(@error_nums>0)

rollback transaction tran_change --

--回滾事務

else

commit transaction tran_change --

--執行事務

MySQL學習筆記 事務

事務是用來保證一組資料庫的操作,要麼全部成功,要麼全部失敗 應用場景較多 如銀行轉賬,訂票等。mysql的事務是在引擎層支援的,原生的myisam不支援,因此主流使用innodb引擎。原子性顧名思義,不可分割,要麼所有指令都成功,要麼所有指令都失敗 一致性事務開始前和事務結束後,資料庫的狀態都是正常...

redis學習筆記 事務

事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全部被執行,要麼全部都不執行。注 對於redis事務是否是原子性可以參考我個人挺支援作者觀點。命令說明 multi 標記乙個事務塊的開始...

sql學習筆記 事務

事務的特性 acid 原子性 乙個事物不可再分割,要麼都執行要麼都不執行 一致性 乙個事務的執行會使資料從乙個一致狀態切換到另乙個一致狀態 隔離性 乙個事務的執行不受其他事務的干擾 永續性 乙個事務一旦提交,則會永久的改變資料庫的資料 事務的建立 事務沒有明顯的開啟和結束的標記 開啟事務 set a...