|
dblinkについての質問なのですが、dblinkで他のデータベースのテーブルと結合させる テーブルを作りたいのですが、CREATE文でFOREIGN KEYを使う事が前提となっていて、 どうやって記述すればうまくいくのかがわからず、困っています。うまくいったとして、 結合させる処理も考え付きません。 ビューを使えば結合はできたのですが、ビューはFOREIGN KEY には使えないのでだめで した。 create table DB1_T1( A1 char(3),B char(3),C char(3),primary key(A),foreign key(C) REFERENCES データベース DB2のテーブル2(C); という風にしたくて、foreign(C) REFERENCES dblink( 'dbname=DB2','select * from DB_T2') AS DB2_T2(C char(3),NAME varchar(50))(C) としてみたのですが、dbname=DB2 でエラーが起こってしまいます。 何かいい方法があればどうかお願いします。 バージョン Postgres7.3.3 |
|
>>4199 中川 PostgreSQL の dblink がいつのまに DB2 に対応したのかと 1時間 悩んでしまいました。 dblink は result set を返すものですが、foreign key は テーブル名・項目名を記述するものなので、無理じゃないですかね。 # Oracle なら foreign key(C) references DB_T2@dblinkname (c) # でいけそうですが。 やるなら DB1_T1 にトリガを設定して、UPDATE・INSERT・DELETE された ときに DB_T2 を見にいくとか。 |