从属表上的mysql触发器问题

从属表上的mysql触发器问题,mysql,triggers,master,slave,Mysql,Triggers,Master,Slave,我们正在构建一个桌面应用程序,其数据库需要与web应用程序数据库同步 为此,我们采取了以下方法: 为了得到已修改的行,我们添加这些行 放入一个空表(带有更新的表) 我们通过使用设置此表中的列值来维护更新 像insert=1、update=2、delete=3这样的代码 为了得到更新,我们在表上添加了触发器 添加/更新/删除哪些数据 添加触发器的缺点是它会减慢 在表上插入和更新。为了减少这种影响,我们 我们已经实现了mysql复制,我们有了客户端web 使用主应用程序添加/更新/删除数据 和桌面应

我们正在构建一个桌面应用程序,其数据库需要与web应用程序数据库同步

为此,我们采取了以下方法:

  • 为了得到已修改的行,我们添加这些行 放入一个空表(带有更新的表)
  • 我们通过使用设置此表中的列值来维护更新 像insert=1、update=2、delete=3这样的代码
  • 为了得到更新,我们在表上添加了触发器 添加/更新/删除哪些数据
  • 添加触发器的缺点是它会减慢 在表上插入和更新。为了减少这种影响,我们 我们已经实现了mysql复制,我们有了客户端web 使用主应用程序添加/更新/删除数据 和桌面应用程序,该应用程序从 从服务器
  • 为了有一个只存储我们添加的更新的表 从中获取插入/更新的从属表的触发器/ 已删除行
  • 请建议是否有更好的方法来做到这一点

    问题如下: 我们有一个具有动态列的表。因此,我们不能在触发器中指定新列。 我们在这个表中添加了一个触发器,它填充另一个空表

    例如: 表1各栏: id,col1,col2,col3,col4

    表2列: id,col1,col2,col3,col4,任务

    触发因素如下:

    DELIMITER //
    Drop trigger if exists on_insert_slave;
    CREATE TRIGGER `on_insert_slave` AFTER INSERT ON `table1` 
    FOR EACH ROW BEGIN  
    INSERT INTO table2 select table1.*,1 from table1 where id = NEW.id;
    END//
    DELIMITER ;
    
    表2中的最后一列用于记录表1行上的操作 i、 e.插入为1,更新为2,删除为3

    当此触发器执行时,只填充表2的id和col1

    提前谢谢