MySQL触发器

作用:用来在某些操作时,“自动”执行一些操作,一张表最多能有6个触发器(3操作*2时间)

定义触发器:

语法:create +trigger+触发器名+ before/after +事件+on+表名+for each row +触发器语句

1、before|after 代表触发器语句执行时间,如果是before,就是在insert|delete|update操作之前执行触发器语句;after就是之后。

2、事件就是insert delete update操作中的一个。

3、for each row 是代表任何记录执行对应操作都会触发器

4、触发器语句就是触发器触发时要执行的语句

注意:时间中,after用的最多,还要多注意触发器重复的问题

多个触发语句:

需要将多条语句放在begin end中

语法:

delimiter @@

create trigger 触发器名 after/before   insert/update/delete  on 表名 for each row

begin

触发语句1;

触发语句2;

,,,,,触发语句n

end@@

delimiter;

触发器基本操作命令

show triggers;——查看所有触发器

drop trigger 触发器名——删除触发器

案例应用——银行账户的开户,存款,取款,销户

演示

-- 开户操作
-- create trigger sss after insert on tb_bank for each row
-- insert into tb_bank_action_history (action,action_money,bank_id)
-- values('开户',new.cash,new.id)
-- insert into tb_bank values(2,'明明',1000)
-- select*from tb_bank_action_history

效果:

 -- 存取款操作
-- create trigger bbb after update on tb_bank for each row
-- insert into tb_bank_action_history(action,action_money,bank_id)
-- values(if(new.cash>old.cash,'存款','取款'),new.cash-old.cash,new.id)
-- 命令操作
-- update tb_bank set cash=cash+100 where id=1;
-- update tb_bank set cash=cash-200 where id=1;
-- 查询
-- select * from tb_bank_action_history;

效果:

 

-- 销户操作
-- create trigger trig_bank_his after delete on tb_bank for each row 

--触发语句
-- insert into tb_bank_action_history(action,action_money,bank_id)
-- values('销户',0-old.cash,old.id);
-- 删除操作
-- delete from tb_bank where id=2;
-- 查询历史
-- select*from tb_bank_action_history
-- 查询触发器
-- show triggers;

效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值