2012-01-28 23 views
1

SQL Server 2008データベースにデータを書き込むことができるPostgresqlトリガを記述することはできますか?私はWindows Postgresql DB(9.1)を持っていて、finaldataというテーブルにデータを書き込む既存のトリガを持っています。 finaldataテーブルで、ODBCなどの接続オプションを使用してSQL Serverに書き込むトリガを設定できますか?ODBC経由でSQL Serverにデータを書き込むためのPostgreSQLトリガ?

私はこれで取り残されています!私は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' 
+0

私はこれにplpgsqlがで行かないだろう...あなたは、他のPL言語を知っていますか?たとえば、PL/Python? – cha0site

+0

いいえ、Pythonの専門知識はありません。 PL/Pythonでこれを扱うことができましたか? 9.1で新しいForeign Table機能を使用しましたか? – user1044111

答えて

1

9.1は、実際に他のデータベースにあるテーブルに対してPostgreSQLの選択/更新などを実行できるようにする外部テーブルをサポートしています。

このようにして、postgresqlトリガー(任意の言語)を使用できます。

ODBC用の外部データラッパーがあり、これを使用してSQL Serverに接続できます。

Postgresql Foreign Tables

ODBC Foreign Data Wrapper

+0

有望ですが、最先端ですが。あなたはこれを動作させることができましたか? SQL Serverラッパーがあるか、またはODBCが必要ですか?リンクはhttps://github.com/ZhengYang/odbc_fdwですが、それはかなり新しいようです – user1044111

1

は、SQL Server(未テスト)にアクセスしてplperlとODBCドライバを使用することができDBI-Linkがあります。しかし、適切なトランザクション管理(つまり、SQLサーバ上のデータは常にPostgreSQLサーバのデータを反映する)のためには、two-phase commit protocolまたはこれに類するものを実装する必要があることに注意してください。

関連する問題