68user's page 掲示板

Prev< No. 4199〜4200> Next  [最新発言に戻る] [過去ログ一覧]
No. 4199 # 中川 2005/07/26 (火) 14:34:29
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

No. 4200 # 68user 2005/07/26 (火) 16:18:44
>>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 を見にいくとか。

Prev< No. 4199〜4200> Next  [最新発言に戻る] [過去ログ一覧]