什麼是事務??
事務就是被繫結在一起作為乙個邏輯工作單元的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...