【发布时间】:2014-12-17 15:50:52
【问题描述】:
我在不同的主机上有 2 个 mysql 数据库,希望在将数据插入一个数据库后触发它插入另一个数据库。我是 mysql 新手,在 sql server 中我可以创建链接服务器并执行此操作。但是在mysql中怎么办? 两个数据库都有相似的表
CREATE TABLE `tsttbl` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` smallint(6) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
【问题讨论】:
-
如果在用户上运行的触发器应该可以访问这两个数据库,这可以很容易地完成。并且触发器很容易创建检查这里stackoverflow.com/questions/8910617/…,示例是更新后您可以将其更改为插入后。
-
感谢回复,我知道如何创建触发器,但我不知道如何从触发器连接到另一个数据库表
-
好吧,您需要 mysql 用户可以访问这两个数据库,然后创建触发器以在该用户
definer上执行,该用户应该可以完成这项工作。但这仅适用于同一主机。由于您的数据库位于不同的主机中,您可能需要某种应用程序层来使用 REST 或 CURL 或 SOAP 来完成这项工作。或者可能是联邦存储引擎dev.mysql.com/doc/refman/5.6/en/federated-storage-engine.html -
我在 stackoverflow 上阅读了另一个问题/答案,那么联合引擎呢?
-
是的,我更新了我的最后一条评论,加入了关于 FEDERATED 存储引擎的信息