事務通俗的說就是資料庫中一系列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...