PG
PostgreSQLデータベース間でライブラリ間操作を行う方法 dblink postgres_fdw
本文はまずdblinkについて話します.dblinkは、データベース・セッションから他のPostgreSQLデータベースへの接続をサポートするプラグインです.他のデータベースでのライブラリ間操作もdblink方式を採用しています
PostgreSQLプラグインdblinkはPostgreSQLインストールパッケージに付属しています.インストールデータベースにdblinkプラグインがインストールされていない場合.自分でコンパイルしてインストールすることができます.dblinkを使用します.まずdblinkに従って拡張します.インストールが完了した後dblink関数を呼び出して、ライブラリ間操作を実現します.私たちがよく使う操作は、ライブラリ間クエリーです.
dblink_を呼び出すconnect関数;dblink接続を作成します(接続名はlottu).これにより、このセッションでlottuデータベースの下のオブジェクトにアクセスできます.
dblinkを使用します.ライブラリ間クエリー操作がもっと多いです.dblink_が作成されたため接続;だから私たちは使ってもいいです.
私たちも直接使うことができます.無効なdblink_の作成connect.これはよく使われる方法です.
ライブラリ間でcreate、insert、update、delete文を操作すると、実際には、この動作は一般的にライブラリ間では動作しません.使用を慎む!次にinsert操作を示します
PostgreSQLではdblinkはセッションレベルです.セッションが切断されるとdblinkも閉じます.もちろん、セッション中に手動で閉じることもできます
dblinkクエリーを使用します.conn_を付けるstr;非常に簡潔ではありません.セッションでテンポラリ・テーブル/ビューを使用して保存します.2つの効果が異なる
ビュー/テンポラリ・テーブルを選択します.あなたのニーズを見てください.PostgreSQLではテンポラリ・テーブルはセッション終了後も保持されません.このようなメリット;使用しない場合は対応するテンポラリテーブルを削除する必要はありません
PostgreSQLはdblinkを使用します.優位性は;即取即用;他のオブジェクトを作成する必要はありません.次の章ではPostgreSQLについて説明します.fdw;PostgreSQL_よりfdwの優位性はここにある.足りないところ後続の補足説明.
開発の仕事の中で;データベースをテストするには、(新規/古い)テーブルのデータを同期する必要があります.dblinkを使うのはとても便利です.
詳細はdblinkを参照してください.PG
記事の転載:http://www.shaoqun.com/a/463243.html
本文はまずdblinkについて話します.dblinkは、データベース・セッションから他のPostgreSQLデータベースへの接続をサポートするプラグインです.他のデータベースでのライブラリ間操作もdblink方式を採用しています
一、dblinkのインストール
PostgreSQLプラグインdblinkはPostgreSQLインストールパッケージに付属しています.インストールデータベースにdblinkプラグインがインストールされていない場合.自分でコンパイルしてインストールすることができます.dblinkを使用します.まずdblinkに従って拡張します.インストールが完了した後dblink関数を呼び出して、ライブラリ間操作を実現します.私たちがよく使う操作は、ライブラリ間クエリーです.
lottu01=# create extension dblink;CREATE EXTENSION
二、dblinkの使用
2.1、dblink接続の作成(dblink_connect)
dblink_を呼び出すconnect関数;dblink接続を作成します(接続名はlottu).これにより、このセッションでlottuデータベースの下のオブジェクトにアクセスできます.
lottu01=> select dblink_connect('lottu', 'host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu'); dblink_connect ---------------- OK(1 row)
2.2、クロスライブラリクエリーテーブル(dblink)
dblinkを使用します.ライブラリ間クエリー操作がもっと多いです.dblink_が作成されたため接続;だから私たちは使ってもいいです.
lottu01=> SELECT * FROM dblink('lottu', 'select id, info from public.t1') as lottu_t1(id int, info text); id | info ------+------- 1001 | lottu(1 row)
私たちも直接使うことができます.無効なdblink_の作成connect.これはよく使われる方法です.
lottu01=> SELECT * FROM dblink('host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu', 'select id, info from public.t1') as lottu_t1(id int, info text); id | info ------+------- 1001 | lottu(1 row)
2.3.クロスライブラリでddl、dcl操作(dblink_exec)を実行する
ライブラリ間でcreate、insert、update、delete文を操作すると、実際には、この動作は一般的にライブラリ間では動作しません.使用を慎む!次にinsert操作を示します
lottu01=> SELECT dblink_exec('lottu', 'insert into public.t1 values (1002,''hello'')'); dblink_exec ------------- INSERT 0 1(1 row)# ORlottu01=> SELECT dblink('lottu', format('insert into public.t1 select %L, %L', 1003, 'lottu')); dblink ---------------- ("INSERT 0 1")(1 row)
2.4、dblink接続を閉じる
PostgreSQLではdblinkはセッションレベルです.セッションが切断されるとdblinkも閉じます.もちろん、セッション中に手動で閉じることもできます
lottu01=> SELECT dblink_disconnect('lottu'); dblink_disconnect ------------------- OK(1 row)
三、拡張
dblinkクエリーを使用します.conn_を付けるstr;非常に簡潔ではありません.セッションでテンポラリ・テーブル/ビューを使用して保存します.2つの効果が異なる
ビュー/テンポラリ・テーブルを選択します.あなたのニーズを見てください.PostgreSQLではテンポラリ・テーブルはセッション終了後も保持されません.このようなメリット;使用しない場合は対応するテンポラリテーブルを削除する必要はありません
lottu01=> create temp table lottu_t1 as SELECT * FROM dblink('host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu', 'select id, info from public.t1') as lottu_t1(id int, info text);SELECT 2lottu01=> select * from lottu_t1; id | info ------+------- 1001 | lottu 1002 | hello(2 rows)
四、シーンの適用
PostgreSQLはdblinkを使用します.優位性は;即取即用;他のオブジェクトを作成する必要はありません.次の章ではPostgreSQLについて説明します.fdw;PostgreSQL_よりfdwの優位性はここにある.足りないところ後続の補足説明.
4.1、リモート・ライブラリ表の同期
開発の仕事の中で;データベースをテストするには、(新規/古い)テーブルのデータを同期する必要があります.dblinkを使うのはとても便利です.
lottu01=> create table public.t1(id int, info text);CREATE TABLElottu01=> insert into public.t1 SELECT * FROM dblink('host=192.168.1.221 port=6000 user=lottu password=li0924 dbname=lottu', 'select id, info from public.t1') as lottu_t1(id int, info text);INSERT 0 5lottu01=> select * from public.t1; id | info ------+------- 1001 | lottu 1002 | hello 1003 | rax 1004 | rax 1005 | lottu(5 rows)
詳細はdblinkを参照してください.PG
記事の転載:http://www.shaoqun.com/a/463243.html