MySQL事務操作

2021-10-04 04:32:59 字數 1477 閱讀 6314

在 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 用 ...