dblink的使用 pg的跨库查询工具
select dblink_connect('host=localhost port=5432 user=sqluser dbname=tm_samples password=****');
select dblink_disconnect();
1、安装
在安装包的目录下
[postgres@localhost postgresql-9.1.1]$ find /postgresql-9.1.1/ -name dblink
/postgresql-9.1.1/contrib/dblink
使用postgres用户安装即可
[postgres@localhost dblink]$ make && make install
在实际安装目录的lib下多了一个dblink.so
/pg/lib/postgresql
-rwxr-xr-x 1 postgres postgres 49174 Jul 22 23:22 dblink.so
进入psql,创建扩展dblink
postgres=# \c liodb lio
You are now connected to database "liodb" as user "lio".
liodb=# create extension dblink;
CREATE EXTENSION
也可以使用命令:psql -f dblink.sql -d 数据库 -U 用户名
2、使用
select dblink_connect('hostaddr=192.168.10.173 port=5432 dbname=tina user=postgres password=tina');
--这个函数用来建立到远程数据库的连接。
liodb=# select dblink_connect('hostaddr=192.168.10.173 port=5432 dbname=tina user=postgres password=tina');
dblink_connect
----------------
OK
(1 row)
liodb=# select * from father; ---这个表在lio中是不存在的
ERROR: relation "father" does not exist at character 15
STATEMENT: select * from father;
ERROR: relation "father" does not exist
LINE 1: select * from father;
#重点在于as 后的重命名表,需要定义表结构,表中的类型需要和select返回的类型保持一致。 ^
liodb=# select * from dblink('select name from father') as t_1(name text);
name
-----------
Las vegas
Mariposa
madison
(3 rows)
这样就可以查询到tina库中的father表的内容
--向远程数据库插入一条记录
select dblink_exec('insert into father values(/'moxige/',/'3.54/',/'899/')');
查询:select * from dblink('select * from father')as fa(name text,population float,altutude text);
3、操作完成,断开连接
select dblink_diconnect();
相关文章
- 04-24OpenCASCADE:使用扩展数据交换 XDE之颜色和图层
- 04-24f-string是以f或F开头的字符串, 核心在于字符串中符号{}的使用
- 04-24Anaconda 使用(解决python包管理与环境管理)
- 04-24缓存需要注意的问题以及使用.net正则替换字符串的方法
- 04-24既使用maven编译,又使用lib下的Jar包
- 04-24WC约束示使用
- 04-24OpenCASCADE:使用DRAW绘图
- 04-24Spring中表达式语言spring-expression简单使用
- 04-24开源工作流引擎 Workflow Core 的研究和使用教程
- 04-24EFCore 使用反射 根据实体的属性动态生成Expression进行查询