mysql學習筆記(八)事務管理

2021-09-27 12:47:00 字數 1160 閱讀 9078

事務通俗的說就是資料庫中一系列sql操作,如果操作成功,就進行提交,如果操作失敗,就回滾至sql語句操作前的狀態。

建表:

create table bankaccount(

id int  not null auto_increment primary key,

name varchar(10) not null,

money int ) engine=innodb,charset=utf8;

插入資料:

insert into bankaccount(name,money) values ('xiaoming',2000),('xiaoli',3000);
start transaction;

update bankaccount set money=money-1000 where id=1;

update bankaccount set money=money+1000 where id=2;

commit;

--該語句執行後表示成功操作,自動進行提交

start transaction;

update bankaccount set money=money-1000 where id=1;

update bankaccount set money=money+1000 where id=2;

rollback;

--該語句執行後表示失敗操作,進行回滾,資料不改變

start transaction;

update bankaccount set money=money-1000 where id=1;

update bankaccount set money=money+1000 where id=3;

rollback;

--該語句執行後表示失敗操作,進行回滾,資料不變改變

可以通過show variable like 'autocommit';來檢視是否開啟自動事務,值為1為自動事務已開啟,為0則為關閉。

不過注意的是set autocommit針對的是會話變數,所以這個設定只在此次會話連線中生效。

mysql事務管理

事務 由多個sql語句組成 這些sql作為乙個整體不可分割,如果其中一條sql不能執行,那麼整個單元會回滾,只有所有sql語句都成功執行才能說這個事務被成功的執行了 mysql的儲存引擎中innodb bdb支援事務 每個事務的處理都滿足acid屬性 1 原子性 事務被看成乙個不可分割的單元 2 一...

mysql 事務管理

事務管理 邏輯上的一組操作,要麼同時完成,要麼同時失敗。mysql start transaction 宣告乙個事務的開始 從a的賬戶向b的賬戶轉入100元 mysql update account setmoney money 100 where name a 步驟1,向a的賬戶存入100,mys...

MySQL 事務管理

事務的4個特性 acid 事務管理的相關命令 start transaction 開始事務 sql語句1 sql語句2 commit 提交事務 rollback 回滾 流程示例 start transaction insert into tb user name,age values zhangsa...