• ベストアンサー

DBをまたいで更新

現在、testDB1とtestDB2というDBが存在します。 それで、testDB1のtable.idとtestDB2のtable2.idを SELECT文で比較して、同じidの場合はtestDB2のtable2.dataに 1という値を格納したいと思っています。 それで、DBをまたいで更新するときの記述が分からず ネットで検索したのですが、うまくヒットしませんでした。 そもそもDBをまたいで問い合わせや更新等はできないのでしょうか? できない場合、代替の方法があったら教えて頂けますでしょうか。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#45409
noname#45409
回答No.2

スキーマ分けがいいと思いますが、現状そのような設計だとすると使いこなせない可能性も高いので・・・、もう一つ簡単な代替方法を。 データをプログラム側に渡してしまえば、その中で比較処理は出来ます。具体的には、table.idを配列で取るなり、他にも処理があるのであればオブジェクトで取るなりして、table2.idに対し、in句かループ文でupdateしていけばいいです。 ただし件数が多い場合はかなり処理が重くなる可能性があります。やる場合はデータ件数をきちんと考慮してくださいね。

その他の回答 (1)

回答No.1

DBをまたぐということはデータベースリンクでしょうか? だとしたら、PostgreSQLはデータベースリンクをサポートしていません。 もし、testDB1とtestDB2が同一サーバ内だとすれば データベースで区分けするのではなく スキーマ単位で分けた方がよいかと思います。 スキーマについては 参考URLを参照してください

参考URL:
http://www.buena-idea.net/~hironobu/postgresql/p-1-03.html

関連するQ&A