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中删除数据的几种方法(最新推荐)

    mysql中删除数据的几种方法(最新推荐)

    在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据,在执行删除操作时,需要谨慎,以免误删重要数据,本文给大家介绍mysql中删除数据的几种方法,感兴趣的朋友一起看看吧
    2023-11-11
  • MySQL运行在docker容器性能损失解析

    MySQL运行在docker容器性能损失解析

    这篇文章主要为大家介绍了MySQL运行在docker容器中的性能损失解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • mysql8.0.0 winx64.zip解压版安装配置教程

    mysql8.0.0 winx64.zip解压版安装配置教程

    这篇文章主要为大家详细介绍了mysql8.0.0 winx64.zip解压版安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 详解MySQL中的pid与socket

    详解MySQL中的pid与socket

    不知道你有没有注意过,MySQL 启动时需要配置 pid 及 socket 文件路径。偶尔还会出现因 pid 文件找不到而启动失败的现象,那么 pid 与 socket 文件究竟是干什么用的呢?我们一起来看下本篇文章。
    2021-06-06
  • MySQL排序优化详细解析

    MySQL排序优化详细解析

    这篇文章主要介绍了MySQL排序优化详细解析,MySQL有两种方式生成有序的结果:1.通过排序操作;2.按索引顺序扫描,如果EXPLAIN出来的type列的值为"index",则说明使用了索引扫描来做排序,需要的朋友可以参考下
    2024-01-01
  • 使用sysbench来测试MySQL性能的详细教程

    使用sysbench来测试MySQL性能的详细教程

    这篇文章主要介绍了使用sysbench来测试MySQL性能的详细教程,包括介绍了从sysbench的编译安装到初始化测试库环境等一系列操作,需要的朋友可以参考下
    2015-05-05
  • windows下MySQL 5.7.3.0安装配置图解教程(安装版)

    windows下MySQL 5.7.3.0安装配置图解教程(安装版)

    这篇文章主要介绍了windows下MySQL 5.7.3.0安装配置图解教程(安装版),需要的朋友可以参考下
    2016-04-04
  • MySQL学习之完整性约束详解

    MySQL学习之完整性约束详解

    数据完整性指的是数据的一致性和正确性。完整性约束是指数据库的内容必须随时遵守的规则。本文就来为大家讲讲MySQL中的完整性约束,需要的可以参考一下
    2022-08-08
  • Oracle和MySQL中生成32位uuid的方法举例(国产达梦同Oracle)

    Oracle和MySQL中生成32位uuid的方法举例(国产达梦同Oracle)

    近日遇到朋友问及如何生成UUID,UUID是通用唯一识别码(Universally Unique Identifier)方法,这里给大家总结下,这篇文章主要给大家介绍了关于Oracle和MySQL中生成32位uuid的方法,需要的朋友可以参考下
    2023-08-08
  • MySQL存储过程参数的用法及说明

    MySQL存储过程参数的用法及说明

    这篇文章主要介绍了MySQL存储过程参数的用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08

最新评论