mysql触发器同步表的数据

触发器定义什么的就不介绍了

这里从定义触发器的语法格式开始

delimiter $
create trigger '触发器名称' after/before insert/update/delete 
on '表名' for each row 
begin
	'触发的sql语句';
end $;
delimiter;
  •  delimiter:是mysql的分隔符,默认是分号(;),在例如触发器,存储过程这种情况,为了让其顺利的执行先去,就需要先重新定义一个特殊的分隔符,在结束操作后再重新更改回来;
  • after/before:触发器被触发的时刻,选择触发器在触发事件之前发生还是触发事件之后发生;
  • insert/update/delete:触发事件,在mysql中,只支持这三种操作来触发触发器;
  • for each row:行级触发器。指每行受影响,触发器都运行,mysql不支持语句触发器,所以必须写for each row;

示例:

第一步:先创建两个表:

图书馆表

图书表

  •  创建插入触发器
-- 插入触发器
delimiter $
create trigger trig_insert_book after insert 
on `library` for each row 
begin
	insert into book(`ref`,`name`,`price`,`press`)
    values (new.book_ref,new.book_name,new.book_price,new.book_press);
end $;
delimiter ;

 创建完成后,可以从设计表结果中查看

  • 执行插入语句
insert into library(`library_id`,`book_ref`,`book_name`,`book_price`,`book_press`,`book_sum`,`library_name`,`library_adress`) 
values (11021,'ac1005','春秋',59.9,'小木出版社',60,'广州市图书馆','广州市')

可以看到,现在只对library表进行插入操作,插入成功后,查看library表数据

 同时再去才可能book表数据:

可以发现,book的表数据也同步插入

对比触发器的sql语句与结果

(因为这里我的book表的id字段是自增的,所以不需要在触发器中去设置id)

  • 创建更新触发器
-- 更新触发器
delimiter $
create trigger trig_update_book after update
on `library` for each row
begin
    update book set ref=new.book_ref,name=new.book_name,price=new.book_price,press=new.book_press;
end $
delimiter;
  • 执行更新语句
update library set book_name ='冬夏' where library_id=11021

 更新结果:

  • 创建删除触发器
delimiter $
create trigger trig_delete_book after delete 
on `library` for each row 
begin
	delete from book where  ref = old.book_ref;
end $;
delimiter;
  •  执行删除语句
delete from `library`  where book_ref = 'ac1005'

删除结果:

 以上即为mysql触发器的同步表操作

 ----------------------------------------------------------------------------------------------------------这是一条分割线

本文仅做为本人的学习笔记,不作为参考资料,请慎用

如有出错的地方,欢迎各位大佬点评指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨小木.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值