【问题标题】:Postgresql trigger to write data into SQL Server via ODBC?Postgresql 触发器通过 ODBC 将数据写入 SQL Server?
【发布时间】:2012-01-28 15:58:37
【问题描述】:

是否可以编写可以将数据写入 SQL Server 2008 数据库的 Postgresql 触发器?我有一个 Windows Postgresql DB (9.1) 并且有一个现有的触发器,它将数据写入一个名为 finaldata 的表中。然后,我能否在 finaldata 表上设置一个触发器,该触发器将通过 ODBC 或其他连接选项写入 SQL Server?

我被这个困住了!我应该尝试使用 plpgsql 还是其他语言更好的选择? 我编写函数的标准方法是:

CREATE OR REPLACE FUNCTION "public"."finaldata" () RETURNS trigger AS
$body$
DECLARE
BEGIN

  "Connect to SQL Server and write data to single table newdata "

END;
$body$
LANGUAGE 'plpgsql'

【问题讨论】:

  • 我不会在这方面使用 plpgsql... 你知道其他 PL 语言吗?比如PL/Python?
  • 抱歉,没有 Python 专业知识。你有这个与 PL/Python 一起工作吗?你在 9.1 中使用了新的 Foreign Table 功能吗?

标签: sql-server postgresql triggers odbc


【解决方案1】:

9.1 支持外部表,允许您在 Postgresql 中针对实际在其他数据库中的表运行选择/更新等。

这样可以使用 postgresql 触发器(任何语言)。

有一个可用于 ODBC 的外部数据包装器,您可以使用它来连接到 SQL Server。

Postgresql Foreign Tables

ODBC Foreign Data Wrapper

【讨论】:

  • 看起来很有希望——虽然是最前沿的。你有没有设法让它工作?是否有 SQL Server 包装器,还是我需要 ODBC 包装器?链接是github.com/ZhengYang/odbc_fdw .. 但它看起来很新
【解决方案2】:

DBI-Link 可以与 plperl 和 ODBC 驱动程序一起使用来访问 SQL Server(未经测试)。但请注意,为了正确的事务管理(即 SQL 服务器上的数据始终反映 PostgreSQL 服务器上的数据),您需要自己实现 two-phase commit protocol 或类似的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2015-01-29
    • 2013-11-09
    相关资源
    最近更新 更多