MYSQL中的事務

2022-08-05 04:39:16 字數 715 閱讀 8418

要更新該使用者的離開時間、總金額

需要更新使用者所住的房屋的狀態為空閒

由此可見,以上需要兩個sql來實現。

發現問題:若某乙個sql語句執行出錯的情況下,另外乙個sql結果卻已經更新到資料庫,造成了資料的不完整。

如何解決:事務

l  事務處理可以用來維護資料庫的完整性,保證成批的sql語句要麼全部執行,要麼全部不執行

l  事務用來管理insert,update,delete語句

一般來說,事務是必須滿足4個條件(acid): atomicity(原子性)、consistency(穩定性)、isolation(隔離性)、durability(可靠性)

1、事務的原子性:一組事務,要麼成功;要麼撤回。

2、穩定性 : 有非法資料(外來鍵約束之類),事務撤回。

3、隔離性:事務獨立執行。乙個事務處理後的結果,影響了其他事務,那麼其他事務會撤回。事務的100%隔離,需要犧牲速度。

4、可靠性:軟、硬體崩潰後,資料表驅動會利用日誌檔案重構修改。可靠性和高速度不可兼得,

1、用 begin, rollback, commit來實現

begin 開始乙個事務

rollback 事務回滾

commit 事務確認

2、直接用 set 來改變 mysql 的自動提交模式:

set autocommit=0 禁止自動提交

set autocommit=1 開啟自動提交

mysql中事務的特性 mysql中事務的四大特性

原子性 atomicity 事務就像 原子 一樣,不可被分割,組成事務的dml操作語句要麼全成功,要麼全失敗,不可能出現部分成功部分失敗的情況。一致性 consistency 一旦事務完成,不管是成功的,還是失敗的,整個系統處於資料一致的狀態。隔離性 isolation 乙個事務的執行不會被另乙個事...

mysql中的事務和鎖 MySQL中的事務和鎖

鎖 行級鎖select for update nowaitfalse,skip false 注意必須用在事物裡面 所有匹配的行將被鎖定,知道事務結束。這意味著可以通過鎖防止資料被其他事務修改。一般情況下如果其他事務鎖定了相關行,那麼本查詢將被阻塞,直到鎖被釋放。事務事務的四大特性 1.原子性 事務包...

MySql中的事務

一.mysql的事務支援不是繫結在mysql伺服器本身,而是與儲存引擎相關 1.myisam 不支援事務,用於唯讀程式提高效能 2.innodb 支援acid事務 行級鎖 併發 二.乙個事務是乙個連續的一組資料庫操作,就好像它是乙個單一的工作單元進行。換言之,永遠不會是完整的事務,除非該組內的每個單...