指点成金-最美分享吧

登录

Mysql中的跨数据库触发器

佚名 举报

技术标签:

【中文标题】Mysql中的跨数据库触发器【英文标题】:Cross database trigger in Mysql 【发布时间】:2012-09-14 09:28:53 【问题描述】:

是否可以在 mysql 中为跨数据库访问应用触发器如果可以,请举一个例子。我的目的是如果在 database1 中插入/更新/删除任何新数据,则在 database2 中插入/更新/删除数据。我正在使用 MySQL 5.1

【问题讨论】:

跨数据库(不同的数据库安装)触发器不存在。 (跨模式,在一台服务器上,offcourse 确实存在)。尝试复制或 MySQLDump。 ***.com/questions/4406808/… @mridul4c 你到底要做什么? @Devart 实际上我有一个从我的 CMS 动态填充的数据库,每次插入或更新时,我都需要另一个数据库进行相同的插入或更新,而无需编写代码和使用触发器。 您可以在 dbForge Studio for MySQL 中借助 Date Comparison tool 同步数据库。您可以在命令行模式下运行它。 【参考方案1】:

是的,你可以。您可以创建一个程序并在触发器中调用它。程序示例:

DELIMITER //CREATE PROCEDURE delete(in table VARCHAR(300), in db VARCHAR(300), in id INT)BEGINset @query0 = CONCAT("DELETE FROM ", new_db, ".", tabela, " WHERE test" (  "id" int(10) DEFAULT NULL,  "name" varchar(100) DEFAULT NULL)

database1 中创建以下 INSERT 触发器:

USE database1;DELIMITER //CREATE TRIGGER sync_insert AFTER INSERT ON test FOR EACH ROWBEGININSERT INTO database2.test SET id = NEW.id, name=NEW.name;END; //DELIMITER ;

为 UPDATE 和 DELETE 定义类似的触发器。

我想说这个解决方案比使用过程更简单直接。

我在 MySQL 5.1.73 和 MariaDB 10.2.13 上测试了上述内容。

【讨论】:

以上是关于Mysql中的跨数据库触发器的主要内容,如果未能解决你的问题,请参考以下文章