【发布时间】:2023-03-02 22:58:02
【问题描述】:
有没有办法在不同的数据库上创建触发器?我的要求是:-
database: a1.db consist table: t1
database:a2.db consist table: t2
现在我必须在 t1 上使用触发器(只要任何删除和更新操作)发生在 t1 上,一个值必须插入到 t2。
等待您的反馈...
【问题讨论】:
-
你能在 SQLite 上做到这一点吗?谢谢
有没有办法在不同的数据库上创建触发器?我的要求是:-
database: a1.db consist table: t1
database:a2.db consist table: t2
现在我必须在 t1 上使用触发器(只要任何删除和更新操作)发生在 t1 上,一个值必须插入到 t2。
等待您的反馈...
【问题讨论】:
我只能为 MySQL 说话,但你应该可以这样做:
CREATE TRIGGER ad_t1 AFTER DELETE ON `a1.db`.t1
FOR EACH ROW
INSERT INTO `a2.db`.t2 VALUES (...)
【讨论】:
除了mysql,你还在用什么数据库?如果 Oracle 是其中之一,那么您可以创建从 Oracle 到其他数据库的 dblink,并且您的触发器(在 Oracle 上运行)可以使用这些 dblink 来更新其他数据库中的表。
有关在 Oracle 中创建 dblink 的信息,您可以参考此链接: http://download.oracle.com/docs/cd/B12037_01/server.101/b10759/statements_5005.htm
另外,请参阅此链接 (How to create a DB link between two oracle instances) 以获取有关 stackoverflow 的另一个答案。
【讨论】:
看起来您需要 MySQL 等效的链接服务器 (MSSQL) 或 dblink (Oracle)。有一种叫做 FEDERATE 存储引擎的东西:
查看here
【讨论】: