mysql 事務主要用於處理操作量大,複雜度高的資料。比如說,在人員管理系統中,你刪除乙個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的資訊,如信箱,文章等等,這樣,這些資料庫操作語句就構成乙個事務!
在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit=0,用來禁止使用當前會話的自動提交。用 begin, rollback, commit來實現
直接用 set 來改變 mysql 的自動提交模式:
set autocommit=0 禁止自動提交
set autocommit=1 開啟自動提交
準備工作:
drop
table
ifexists shiwu;
create
table shiwu
(id int
unsigned
auto_increment
primary
key,
txt int
unsigned);
insert
into shiwu values
(null,11
);insert
into shiwu values
(null,22
);select
*from shiwu;
使得表內如下:
;執行結果:
新增資料完成如下:
如圖,以上sql語句執行完畢,由於rollback;
的執行,將進行事務回滾,所以結果將會回到上乙個
mysql事務學習
mysql 事務主要用於處理操作量大,複雜度高的資料。比如說,在人員管理系統中,你刪除乙個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的資訊,如信箱,文章等等,這樣,這些資料庫操作語句就構成乙個事務!在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行...
MySQL 事務學習
髒讀髒寫 都是因為讀取了事務未提交時的事務回滾情況髒寫 事務a與事務b同時更新一條資料,由於其中乙個事務回滾 導致另外事務執行成功的資料不存在了。髒讀事務a還沒提交事務時事務b拿到值做了大量的操作,事務a回滾後出現的資料異常問題。不可重複讀 與可重複讀 事務a修改了值並且提交了事務 b讀取到 然後b...
MySQL事務學習
mysql事務學習 分布式事務 innodb儲存引擎支援xa事務,通過xa事務可以支援分布式事務的實現。分布式事務指的是允許多個獨立的事務資源 transac tional resources 參與乙個全域性的事務中。事務資源通常是關係型資料庫系統,也可以是其它型別的資源。全域性事務要求在其中所有參...