代码之家  ›  专栏  ›  技术社区  ›  weotch

mysql数据库从属服务器上需要触发器吗?

  •  0
  • weotch  · 技术社区  · 17 年前

    total_comments news.total_comments “最新)或是否会被告知更新相应的” news.total_comments

    3 回复  |  直到 17 年前
        1
  •  3
  •   weotch    17 年前

    从文档 http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html :

    22.5.4:如何通过主机上的触发器执行操作 复制成奴隶?首先 该流与任何其他标准DML一样工作 复制。例如,考虑一个 带有AFTER插入的EMP表 触发器,存在于主机上 MySQL服务器。相同的EMP表和 插入触发器存在后 流程将是:INSERT语句是 写入二进制日志。这 向EMP提交声明并执行 EMP触发后

    复制到从属服务器。

    因此,您确实需要在从属设备上设置触发器。

        2
  •  2
  •   Jerry Coffin    17 年前

    这取决于您使用的复制。如果您使用基于语句的复制,那么您 必须 不 包括从属设备上的触发器。

        3
  •  1
  •   j0k gauthamp    13 年前

    ---------------------------------------------------------------------------------------
    -- EXEMPLE :
    -- We want install a replication of the table test_table that will be managed  by Trg_Update triggers.
    ---------------------------------------------------------------------------------------
    
    Create database TEST;
    USE TEST;
    CREATE TABLE test_trigger (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        PRIMARY KEY  (id),
        INDEX name (name),
    ) ;
    
    DELIMITER |
    CREATE TRIGGER Trg_Update AFTER INSERT ON test_trigger
    FOR EACH ROW BEGIN
    INSERT INTO federated_table (name, other) values (NEW.name, ‘test trigger on federated table -> OK’)
    END|
    DELIMITER ;
    
    
    CREATE TABLE test_table (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        other  VARCHAR(32) NOT NULL DEFAULT '',
        PRIMARY KEY  (id),
        INDEX name (name),
        INDEX other_key (other)
    ) ;
    
    
    CREATE TABLE federated_table (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        name   VARCHAR(32) NOT NULL DEFAULT '',
        other  VARCHAR(32) NOT NULL DEFAULT '',
        PRIMARY KEY  (id),
        INDEX name (name),
        INDEX other_key (other)
    )
    ENGINE=FEDERATED
    CONNECTION='mysql://root@localhost/TEST/test_table';
    
    ---------------------------------------------------------------------------------------