PostgreSQLで他のPostgreSQLデータベースのデータにアクセスするには、contribで提供されているdblinkを利用します。 これの利用方法についての簡単なメモです。 ここに登場していない関数や説明もありますが、それは今後完全版をDatabase tearoomの方に書きたいと思っています。 ● 環境構築 UNIXやLinuxでは、ソースからコンパイルし、インストールします。(rpmなどのパッケージでインストールしている場合はcontribのパッケージをインストールして、dblink.sqlを実行すればいいんだと思う。たぶん…^^;) dblinkのソースのディレクトリ(ex. /usr/local/src/postgresql-?.?.?/contrib/dblink)で実施
こんにちは、なかわけです。 いまpostgresのlargeobjectを大量にコピーする作業をしています。 元のデータベースに3000万行くらいあってそれをまるっとそっくりコピーのデータベースに流し込みます。 INSERT INTO pg_largeobject SELECT * FROM dblink('dbname=元データベース', SELECT * FROM pg_largeobject') AS t1 (loid oid, pageno integer, data bytea); 最初一回でコピーしようとしたらメモリエラーで失敗しました。そりゃそうですよねw それで3000万行を10万行ずつに分割して書いたクエリのテキストファイルを読み込ませて データを流し込むことにしました。たとえば、以下はその中のひとつのクエリ。 INSERT INTO pg_largeobject SEL
postgresqlでカレントデータベースから他のデータベースに接続する場合は dblinkというcontrib*1をインストールして実現できるのですが、 そのまま使おうとすると非常に使いづらい…*2 なわけで、よく使うテーブルをあらかじめビューにしておくと良いのでは? と思い調査してみました。 まずはdblinkのインストール*3 # cd /usr/local/src/postgresql-8???/contrib/dblink # make # make install # psql -U postgres -d データベース名 < dblink.sqlこれだけでOK。 ちなみに、リンク元のデータベースだけにインストールすればいいみたい。 dblinkを使ってみる 単純に使いたいなら以下の方法(もちろん、hostやportも指定可能)。 select * from dblink( '
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く