PostgresのdblinkでDBが別のテーブルをJOINする

dblink

というコマンドがあるのでそれを使います。
デフォルトでは使えないのでコマンドをDBに登録(?)する必要があります。
※なお、通常contribパッケージは元から入っているようなのですが、
自分の環境だとなかったので先に以下のコマンドを実行

yum search postgresql;
yum install postgresql-contrib.i386


その後以下のコマンドを実行で「dblink」が使えるようになりました。

cd postgresql-?.?.?/contrib
psql -U postgres -d DBNAME < dblink.sql

参考:http://database-tearoom.seesaa.net/article/25306577.html


dblinkはviewにするとかなり便利に使えます。
(というか、viewにしないと長ったらしいコマンドを毎回書くことに・・・)

参考:http://d.hatena.ne.jp/toritori0318/20090221/1235229759


dblinkのselect文書くところに通常通りJOIN文を書くだけです。
まったく問題なく、異なるDBのテーブルをJOINすることが出来ました☆



この調子でupdateとinsertもviewを対象にできるようにしようと思ったのですが、

create rule

dblink使ってcreate ruleは出来ませんでした。。。
(出来るやり方ご存知な方いらっしゃったら教えてくださいm(__)m)


追記:あまりにも遅くて残念な結果になりました。。。
Postgresのdblinkの代わりにtemporary tableで対応 - プログラミング日記でした