PostgreSQL dblink的使用


dblink,能夠在一個數據庫中操作另外一個遠程的數據庫。

准備工作:
1. 使用dblink,在安裝PostgreSQL的時候,必須把的位於PostgreSQL下的contrib\dblink源碼編譯安裝,
   #cd contrib/dblink
   #make
   #make install
   之后可以看到在$PGHOME下的lib下就有個dblink.so文件

2. 使用psql dbname之后:
   使用create extention dblink; 擴展dblink功能(其實這個操作是創建dblink的相關航函數)
  

示例:取得postgres表的tb1的數據

  1.  
    select * from
  2.  
    dblink( 'dbname=postgres host=localhost port=5432 user=postgres passwd=123456'::text,'select * from tb1'::text)t
  3.  
    ( id integer,name character varying));


如果認為每次查詢都要寫dblink的一堆信息很麻煩的話,可以在當期庫中建一個view來解決。

  1.  
    CREATE VIEW view_remote_tb1 AS
  2.  
    select * from
  3.  
    dblink( 'dbname=postgres host=localhost port=5432 user=postgres passwd=123456'::text,'select * from tb1'::text)t
  4.  
    ( id integer,name character varying));

然后就可以從這個view中查詢數據了。

SELECT * FROM remote_people_user_name; 


如果不只是查詢數據,而是需要修改postgres的數據的情況下怎么弄呢?
1. 先執行dblink_connect保持連接
SELECT dblink_connect('mycoon','hostaddr=127.0.0.1 port=5432 dbname=postgres user=postgres password=123456');  
2. 執行BEGIN命令
SELECT dblink_exec('mycoon', 'BEGIN');
3. 執行數據操作(update,insert,create等命令)
SELECT dblink_exec('mycoon', 'insert into tb1 select generate_series(10,20),''hello''');
4. 執行事務提交
SELECT dblink_exec('mycoon', 'COMMIT');
5. 解除連接

SELECT dblink_disconnect('mycoon');

原文來自


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM