postgresql dblink 使用

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介:
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();
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
存储 关系型数据库 PostgreSQL
PostgreSQL通过DBLINK执行存储过程创建表
在A服务器创建存储存储过程CREATE OR REPLACE FUNCTION "public"."crt_tab"() RETURNS "pg_catalog"."int4" AS $BODY$declare str_sql varchar(100);ret int;begincreate ta...
2201 0
|
SQL 关系型数据库 测试技术
PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试与优化 2 - 单机分区表 (dblink 异步调用并行) (4亿图像)
标签 PostgreSQL , imgsmlr , GiST , 图像特征值 , 小波转换 背景 续 《PostgreSQL 11 相似图像搜索插件 imgsmlr 性能测试 1 - 单机单表 (4亿图像)》 使用分区表+dblink异步接口并行调用。
1525 0
|
SQL 关系型数据库 对象存储
PostgreSQL dblink异步调用实践,跑并行多任务 - 例如开N个并行后台任务创建索引, 开N个后台任务跑若干SQL
标签 PostgreSQL , 后台任务 , DBLINK 异步调用 背景 使用DBLINK异步接口,可以非常方便的实现跑后台任务,如果要让数据库执行若干条SQL,开N个并行执行,同样可以使用DBLINK封装成API进行调用。
1359 0
|
关系型数据库 测试技术 数据库