事务-简介以及操作演示

事务:是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,,即这些操作要么同时成功,要么同时失败
默认mysql的事务是自动提交的,也就是说,当执行一条DML语句,mysql会立即隐式地提交服务

事务操作:
查看/设置事务提交方式:select @@autocommit;
set @@autocommit=0;//设置为手动提交

开启事务:start transaction或begin

提交事务:commit

回滚事务:rollback;

代码:
create table account(
id int auto_increment primary key comment '主键ID',
name varchar(10) comment '姓名',
money int comment '余额'
) comment '账户表';
insert into account(id, name, money) VALUES (null,'张三',2000),
(null,'李四',2000);
update account set money=2000 where name='张三' or name='李四';

select @@autocommit;/*查看事务提交方式*/
set @@autocommit=0;/*设置事务提交方式:0为手动提交,1为自动提交*/

-- 转账操作(张三给李四转1000)
-- 1.查询张三账户余额
select * from account where name='张三';

-- 2.将张三的账户余额-1000
update account set money=money-1000 where name='张三';

出现异常...
-- 3.将李四的余额+1000
update account set money=money+1000 where name='李四';

commit;/*提交事务*/

rollback ;/*回滚事务*/


-- 方式二
-- 转账操作(张三给李四转1000)
start transaction ;
-- 1.查询张三账户余额
select * from account where name='张三';

-- 2.将张三的账户余额-1000
update account set money=money-1000 where name='张三';

出现异常...
-- 3.将李四的余额+1000
update account set money=money+1000 where name='李四';

commit;/*提交事务*/

rollback ;/*回滚事务*/

posted @ 2023-04-13 19:03  惊鸿宴远赴人间  阅读(100)  评论(0)    收藏  举报