mysql触发器

1.       说明:

触发器的定义就是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。

 

2.       触发器作用:

安全性;审计;实现复杂的数据完整性规则;实现复杂的非标准的数据库相关完整性规则;同步实时地复制表中的数据

 

3.       语法结构:

create trigger trigger_name (BEFORE|AFTER) (delete|update|insert) on table_name

for each row

BEGIN

要触发的sql语句;

END;;

 

4.       例子1:

DELIMITER ;;    定义sql命令结束符

/*

drop trigger D1;;  删除触发器

drop trigger D1;;

*/

create  trigger D1 BEFORE delete on employee

for each row      表示行级触发器

BEGIN

insert into tg_employee_log set name=old.name,name_id=old.employee_id,action='delete';

update tg_assets_info set as_status='2',user=205 where user=old.employee_id;

END;;                 

表示在删除employee里的数据之前,在tg_employee_log表里面插入一条数据,并且更新tg_assets表的数据。

注意:这里用到的old.employee_id,表示删除之前的数据。

 

5.       例子2:

create  trigger D2 AFTER insert on employee

for each row

BEGIN

insert into tg_employee_log set name=new.name,name_id=new.employee_id,action='add';

END;;

 

表示在employee插入之后,在tg_employee_log表里插入一条数据。

注意:这里用到了new.employee_id,表示插入之后产生的新数据。

 

DELIMITER ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值