联合表和触发器

jil*_*ila 5 mysql trigger remote federated-table

这就是场景。

在不同的机器上有两个 MySQL 服务器(S1、S2),每个服务器上都有一个数据库(DB1、DB2)。

我在 DB2 上有一个表 (T2),它需要从 DB1 上的另一个表 (T1) 中“获取”行。

我创建了一个临时表(基于 DB1 并在 DB2 上联合),因此当我在 T1 上插入符合某些要求的行时,我将复制到我的 DB1 临时表。

没关系。

使用 DB2 上的联合表,我得到了 T2 所需的行。

我假设 DB2 的联合临时表上的触发器可以将该行插入到 T2,但触发器永远不会触发。

有什么建议?

Rol*_*DBA 3

当涉及到联合表时,您不应该相信触发器。您最好在源端的真实 MyISAM 表上创建临时触发器。

想象一下这个:

在服务器上S1 -T1是 MyISAM 表 -是FEDERATEDT2T1S2

请执行下列操作:

  • 创建触发器以T1将行插入到T2
  • 将数据插入T1
  • 放下扳机

选择

使用 MySQL 复制会更好,如下所示:

  • S1是大师
  • S2是奴隶
  • 设置replicate-do-table=db1.T1my.cnfS2

如果您复制到同一个命名表,这将自动对该表执行所有 DML。