|
大変早いお返事本当にありがとうございます。 とても悩んでいたので助かりました。 一番上にPostgreSQL と書くべきでした。 PostgresでdblinkとForeign keyを使うのは無理でしたか。 dblink以外を使って他のデータベースのテーブルをForeign key制約 に指定する方法はないのでしょうか? 上司に無理です。と言い切るしかないかもしれません。 |
|
>>4201 中川 外部キーにこだわるなら、 - 定期的に他データベースからデータを取得してローカルのテーブルに入れる - 他データベースからトリガでローカルのテーブルに反映する くらいしかないのでは、とわたしは思います。 |
|
大変早いお返事本当にありがとうございます。 とても悩んでいたので助かりました。 一番上にPostgreSQL と書くべきでした。 PostgresでdblinkとForeign keyを使うのは無理でしたか。 dblink以外を使って他のデータベースのテーブルをForeign key制約 に指定する方法はないのでしょうか? 上司にForeign keyにdblinkは無理です。と言ったところ、 データベースA データベースB テーブルT_A テーブルT_B A B C A B C 1 0 0 2 0 0 3 0 0 データベースAのテーブルT_Aの列E_1の選択した値だけ(1だけ や 2だけ)を データベースBのテーブルT_Bの列 Aに、INSERTする。 そのときテーブルT_Bの列BにはデータベースBのテーブルT_Cの列BをINSERT し、Cにはすきな値を入れる。 という処理をする事になりました。 dblinkとビューを使ってデータベースBのテーブルT_Bに変わるものを作れば いいと思ったのですが、selectした値をそれぞれの列に入れ込む処理が見当 たらず停滞しています。 いい案がありましたらよろしくお願いします |
|
>>4203 中川 - 最終的に何をしたいのか - 現状のどこが問題なのか を読み取ることができません。 |
|
わかりづらくて申し訳ありませんでした。 やりたい処理は テーブル1の列Aには、テーブル2の列A テーブル1の列Bには、テーブル3の列B テーブル1の列Cには、その場で作った 値をINSERTさせる という処理がした いのですが、解決策が見つかりません。 副問いで、SELECTした値をINSERTさせ ようとしたのですが、SELECTは一つし か使えないようなので複数SELECTして それぞれの列にINSERTさせるというの は無理なのでしょうか。 |
|
>>4205 中川 INSERT INTO T1 (A, B, C) SELECT T2.A, T3.B, 'HOGE' FROM T2, T3 WHERE (T2 と T3 に関する条件) ということですか? 手元に PostgreSQL はないので確認できませんが、Oracle では一応動きました。 |