mysql 利用触发器实现表数据同步

数据库 db1 和 数据库 db2 处于同一个数据库连接下,分别拥有表 table1 和 table2,两个表结构一致

现将 db1.table1 下的改动更新到 db2.table2,以下触发器是在 db1 下创建的

  1. 插入同步

    drop trigger if exists after_table1_insert
    delimiter $$
    create trigger after_table1_insert
    after insert
    on table1
    for each row
    begin
    insert into db2.table2 select * from table1 where id = new.id;
    end$$
    delimiter ;
    
  2. 更新同步

    drop trigger if exists after_table1_update
    delimiter $$
    create trigger after_table1_update
    after update
    on table1
    for each row
    begin
    delete from db2.table2 where id = new.id;
    insert into db2.table2 select * from table1 where id = new.id;
    end$$
    delimiter ;
    
  3. 删除同步

    drop trigger if exists after_table1_delete
    delimiter $$
    create trigger after_table1_delete
    after delete
    on table1
    for each row
    begin
    delete from db2.table2 where id = old.id;
    end$$
    delimiter ;
    

扩展链接

触发器创建语法: https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html

触发器创建示例: https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 5,845评论 0 10
  • 经典MSSQL语句大全和常用SQL语句命令的作用 下列语句部分是Mssql语句,不可以在access中使用。 SQ...
    Keropok阅读 6,967评论 0 30
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,143评论 0 13
  • 转自http://www.cnblogs.com/0351jiazhuang/p/4530366.html SQL...
    Hoe王666阅读 1,631评论 0 0
  • 今天,我觉得很开心,因为一切都不算太糟糕,作业也在最后一刻赶完了,虽然还有很多,但是还有时间赶。 不知道为什么,也...
    不懂的小七阅读 1,189评论 0 4