【问题标题】:Put trigger in MySQL database to update Oracle database?在 MySQL 数据库中放置触发器以更新 Oracle 数据库?
【发布时间】:2012-08-31 21:53:23
【问题描述】:

我想在 MySQL 上创建一个插入触发器,它会自动将记录插入 Oracle 数据库。我想知道是否有人对此主题有经验分享。

干杯

【问题讨论】:

  • 我怀疑这是否可行 - mysql 对 oracle 一无所知,反之亦然
  • 谢谢阿德里安。您对跨这两个不同数据库同步数据有什么建议吗?

标签: mysql sql oracle triggers


【解决方案1】:

Invoke a script as is done in this example 调用 Oracle 代码。

注意:当您执行此类级联时,您将失去对事务的支持(Oracle 数据库将不会内置回滚),并且这样做可能会对性能造成非常大的影响。该脚本可以转过来简单地调用 Java 代码或其他一些可执行文件,这些可执行文件会调用您的一些通用代码以插入 Oracle,或者它可以是从脚本获取传递参数的原始查询。

由于奇怪的副作用行为,这几乎可以肯定是一个坏主意,但它是可以实现的。我认为你最好让代码针对两个不同的DataSources(在 Java/.NET 中)执行此操作,而不是在 MySQL 触发器中有一个隐藏的脚本,它尖叫着无法维护,以及隐藏的失败未来的开发者。

【讨论】:

  • 你可以得到一个触发器来调用一个脚本 - 不知道
  • 我认为它只在像示例中的这种罕见的、启动某些流程的情况下才真正有意义(在本月的第一天处理)。除此之外,我认为滥用的机会可能超过它的价值。
  • 特别是因为mysql现在有一个事件调度器
  • 你说得对。我担心的这个问题是可能的隐藏故障。但是因为Mysql数据库的更新只由一个终端用户进行,所以性能问题会比较少。此外,您提供的示例脚本是针对 Mysql 的,而不是针对 Oracle 的。如果您能提供一个 Oracle 示例,我将不胜感激。
  • @sounder 最简单的方法是安装 lib_mysql_udfsys(注意它的警告词),然后从字面上调用一个登录到 Oracle 的 bash 脚本,然后通过触发器执行 INSERT 命令作为像CALL sys_eval('/path/to/script.sh arg1 arg2 arg3', sysout_of_oracle)这样的函数调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2016-06-07
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多