在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit=0,用來禁止使用當前會話的自動提交。
菜鳥教程:
1、用 begin, rollback, commit來實現
2、直接用 set 來改變 mysql 的自動提交模式:
● 操作
○ mysql中可以有兩種方式進行事務的管理:
■ 自動提交:mysql預設自動提交。即執行一條sql語句提交一次事務。
■ 手動提交:先開啟,再提交
方式1:手動提交
start transaction;
update account set money=money-1000 where name=』jack』;
update account set money=money+1000 where name=』rose』;
commit;或者rollback;
● 方式2:自動提交,通過修改mysql全域性變數「autocommit」進行控制
show variables like 『%commit%』; –> 檢視事務是否提交
* 設定自動提交的引數為off:
set autocommit = 0; – 0:off 1:on –> 手動設定提交方式
--全域性修改
set global autocommit=0;
show global variables like 'autocommit';
--區域性修改
set session autocommit=0;
show global variables like 'autocommit';
資料庫事務操作例項:開啟兩個視窗,乙個用於事務新增資料,乙個用於事務提交前查詢
第一次,session1事務沒有提交,session2直接查詢資料 session1:
測試結果如下:並沒有新增成功
第二次,session1提交事務,session2等到session1提交完成後查詢資料 session1:
start transaction- 開啟事務
insert into `test` (`name`,`tel`)values('test','13586458664');
commit;--提交事務
rollback;--回滾事務
mysql事務操作 mysql的事務操作
倒著思考。杜絕純粹的知識填鴨教育 少廢話,是上 update table1 set money 100 where id 1 a賬戶減少100元 update table2 set money 100 where id 2 b 賬戶增加100元 問題 這是乙個簡單的銀行轉賬案例sql,由於伺服器等未...
mysql事務操作
當把多個操作當做乙個事務時,這些操作具有一下特點 mysql select autocommit 檢視autocommit autocommit 1 1 row in set 0.00 sec mysql set autocommit 0 將autocommit設定為0,防止自動提交 query o...
MySQL事務操作
在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit 0,用來禁止使用當前會話的自動提交。菜鳥教程 1 用 ...