事务操作 mysql的事务操作
事務操作
舉例:
create table my_account(
id int unsigned not null primary key auto_increment,
account varchar(16) not null unique,
name varchar(10) not null,
money decimal(20,2)) charset utf8;
insert into my_account values
(1 , "0000000000000000" , "張三", 1000),
(2 , "1111111111111111" , "李四", 2000),
(3 , "2222222222222222" , "王五", 3000);
-- 如果此時進行轉賬操作
update my_account set money = money - 500 where id = 1;
-- 如果停電 就會出問題:張三轉賬給某人了 可是某人沒收到 而且張三也虧了500元
/****************************************************************************/
-- 事務操作 (1.手動提交 2. 自動提交(默認)
start transaction; ? ? ? ? ? //開啟事務操作
-- 轉賬
update my_account set money = money - 500 where id = 1;
-- 查詢數據
select * from my_account; (查看到已經扣了500 其實這是 事務管理 操作了的)
-- 此時停電 會 回滾
-- 轉賬
update my_account set money = money + 500 where id = 2;
-- 手動提交
commit;
/*******************************************************************************/
-- 有關回滾點
-- 開啟事務
start transaction;
-- 2 3轉賬給1 500元
update my_account set money = money - 500 where id = 2;
-- 設置回滾點?
savepoint sp1;
update my_account set money = money - 600 where id = 3; //這步做錯了
-- 回滾
rollback to sp1;
圖片展示:
總結
以上是生活随笔為你收集整理的事务操作 mysql的事务操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 怎么在VS2017上附加进去
- 下一篇: madplay 操作步骤