mysql触发器同步表的数据方式

 更新时间:2023年08月30日 14:32:38   作者:杨小木.  
这篇文章主要介绍了mysql触发器同步表的数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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触发器的同步表操作。仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql的json处理实现

    mysql的json处理实现

    本文主要介绍了mysql的json处理实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • MySQL中你可能忽略的COLLATION实例详解

    MySQL中你可能忽略的COLLATION实例详解

    mysql的collation大致的意思就是字符序,这篇文章主要给大家介绍了关于MySQL中COLLATION的相关资料,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 深入理解mysql各种锁

    深入理解mysql各种锁

    大家好,本篇文章主要讲的是深入理解mysql各种锁,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Mysql中undo、redo与binlog的区别浅析

    Mysql中undo、redo与binlog的区别浅析

    大家应该都知道日志系统主要有redo log(重做日志)和binlog(归档日志),下面这篇文章主要给大家介绍了关于Mysql中undo、redo与binlog区别的相关资料,需要的朋友可以参考下
    2021-09-09
  • Linux下MYSQL 5.7 找回root密码的问题(亲测可用)

    Linux下MYSQL 5.7 找回root密码的问题(亲测可用)

    这篇文章主要介绍了Linux下MYSQL 5.7 找回root密码的问题(亲测可用),通过 --skip-grant-tables 找回,新增完成后,:wq 保存退出,重启mysqld服务,具体内容详情跟随小编一起看看吧
    2021-10-10
  • 解决Navicat远程连接MySQL出现 10060 unknow error的方法

    解决Navicat远程连接MySQL出现 10060 unknow error的方法

    这篇文章主要介绍了解决Navicat远程连接MySQL出现 10060 unknow error的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • CentOS 7下使用rpm包安装mysql 5.7.18

    CentOS 7下使用rpm包安装mysql 5.7.18

    这篇文章主要为大家详细介绍了CentOS 7下使用rpm包安装mysql 5.7.18的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • mysql left join快速转inner join的过程

    mysql left join快速转inner join的过程

    inner join内连接,显示两个表中有联系的所有数据而left join,左链接,以左表为参照,显示所有数据,右表中没有则以null显示,本文重点给大家讲解mysql left join快速转inner join的过程,需要的朋友参考下吧
    2021-06-06
  • MySQL优化中B树索引知识点总结

    MySQL优化中B树索引知识点总结

    在本文里我们给大家整理了关于MySQL优化中B树索引的相关知识点内容,需要的朋友们可以学习下。
    2019-02-02
  • mysql报错:MySQL server version for the right syntax to use near type=InnoDB的解决方法

    mysql报错:MySQL server version for the right syntax to use nea

    这篇文章主要介绍了mysql报错:MySQL server version for the right syntax to use near type=InnoDB的解决方法,涉及MySQL语句的使用技巧,需要的朋友可以参考下
    2016-01-01

最新评论