文章目录
回顾一、事务概念1.1 事务的概念1.2 事务的基本操作1.3 注意事项1.4 拓展技能
二、事务处理2.1 开始事务2.2 结束事务2.3 撤销事务2.4 回滚事务2.5 控制事务结束后的行为
三、事务隔离级别3.1 查看隔离级别3.2 修改隔离级别3.2.1 READ UNCOMMITED(读取未提交)3.2.2 READ COMMITED(读取提交)3.2.3 REPEATABLE READ(可重复读)3.2.4 SERIALIZABLE(可串行化)
四、实践
回顾
关于触发器的复习题
create table goods( #商品表
gid char(10), #商品编号
number int #库存数目
);
create table order_detail( #订单表
gid char(10),
number int, #下单数目
ordertime timestamp
);
1.建立一个触发器,当订货时,会判断库存是否够,如果够,则订货信息会顺利的写入order_detail表,
库存信息更新,如果该商品库存不够,报错"商品库存不足",完成后测试该触发器
create trigger t_order before insert on order_detail for each row
begin
declare num int;
select number into num from goods where gid=new.gid;
if numB 500元,B->C 1000元),如果B账户钱不够或者C账户不可用,这时候回滚到A->B刚转完的阶段。 要求:使用事务结合存储过程模拟以上过程
create procedure p_money(in outid int,in inid int,in money int)
# outid 转出账户
# inid 转入账户
# money 转出金额
begin
declare ye,res int;# ye 为余额
start transaction;
update account set cash = cash - money where id = outid;
savepoint s1;
select cash into ye from account where id = outid;
if ye |