从属表上的mysql触发器问题

时间:2013-10-12 05:43:07

标签: mysql triggers master slave

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

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

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

    以下是问题: 我们有一个包含动态列的表。因此,我们无法在触发器中指定新列。 我们在此表中添加了一个触发器,用于填充另一个空表。

    例如: 表1列: id,col1,col2,col3,col4

    表2列: id,col1,col2,col3,col4,task

    以下是触发器:

    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 ;
    

    table2中的最后一列用于记录table1中行的操作 即插入将为1,更新将为2,删除将为3

    当执行此触发器时,仅填充table2的id和col1。

    先谢谢。

0 个答案:

没有答案