什么是MySQL触发器

MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序。利用MySQL触发器可以对表进行增、删、改操作同时响应另一张表做出相同的操作。下面简单介绍一下MySQL触发器的基本语法。

如何创建一个触发器:

修改delimiter为//

mysql> \d //

创建一个名字为tg1的触发器,当向t1表中插入数据时,就向t2表中插入一条数据

mysql> create trigger tg1 before insert on t1 for each row

>begin insert into t2(id) values(new.id);

>end//

准备两个空表t1和t2

mysql> select * from t1;

mysql> select * from t2;

向t1表中插入多条数据:

mysql> insert into t1 values(1),(2),(3),(4);

此时在 t1 表中插入数据的时候也会将数据插入到 t2 表中,这就实现了关联插入的效果,也可以认为是两表同步。需要解释的地方是 >begin insert into t2(id) values(new.id); 这句里面的 new.id ,所有插入的数据都为新数据,如果执行的是修改的话,数据是之前存在的,就要用 old ,也就是说,之前没有的用 new ,之前已经存在的就用 old,下面会讲解到删除、修改操作,相信很快就会理解。

如何制作删除表t1后t2表中的记录也会跟着删除呢?

mysql>\d //

mysql> create trigger tg2 before delete on t1 for each row

>begin delete from t2 where id=old.id;

>end//

mysql>\d ;这一步是将原来的被修改的结束符还原成分号 ;

此时当对表 t1 中数据删除的时候就会同时删除 t2 中对应的数据

如何制作更改表t1后t2表中的记录跟着个性呢?

mysql>\d //

mysql> create trigger tg3 before update on t1 for each row

>begin update t2 set id=new.id where id=old.id;

>end//

mysql>\d ; 

此时当对表 t1 中数据修改的时候就会同时修改 t2 中对应的数据

需要注意的地方: where 条件的 等号 两边必须有相同的内容,这点相信大家都懂得。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值