当前位置: 首页 > wzjs >正文

李洋网络做网站网站建设推销员话术

李洋网络做网站,网站建设推销员话术,天津网站排名提升多少钱,网站开发平台是什么PostgreSQL想要在A库下查询B库的表,可以使用dblink插件。PostgreSQL的dblink是一个支持在一个数据库会话中连接到其他PostgreSQL数据库的扩展模块,可以实现在不同的数据库之间进行通信和交互。 它可以让你在一个数据库中访问另一个数据库的表和函数&…

PostgreSQL想要在A库下查询B库的表,可以使用dblink插件。PostgreSQL的dblink是一个支持在一个数据库会话中连接到其他PostgreSQL数据库的扩展模块,可以实现在不同的数据库之间进行通信和交互。

它可以让你在一个数据库中访问另一个数据库的表和函数,甚至可以在不同的服务器之间进行数据交互。

pgsql9.6版本以后自带,不需要手动安装,另外PG使用dblink执行一个远程查询时,必须在调用时定义返回的列名和类型。

dblink用法

创建 pg dblink扩展

CREATE EXTENSION IF NOT EXISTS dblink;
###如果已经有,可以在 pg 扩展表查到
SELECT * FROM pg_extension WHERE extname = 'dblink'; 
或使用\dx 
postgres=# \dx已安装扩展列表名称        | 版本 |  架构模式  |                                  描述
--------------------+------+------------+------------------------------------------------------------------------adminpack          | 2.1  | pg_catalog | administrative functions for PostgreSQLdblink             | 1.2  | postgres   | connect to other PostgreSQL databases from within a databaseoracle_fdw         | 1.2  | postgres   | foreign data wrapper for Oracle accesspg_stat_statements | 1.9  | postgres   | track planning and execution statistics of all SQL statements executedplpgsql            | 1.0  | pg_catalog | PL/pgSQL procedural language

建立远程连接

SELECT dblink_connect('local_connect','hostaddr=127.0.0.1 port=5432 dbname=xxxx user=xxxx password=xxxx') as dev;
解释:
'local_connect'  是我自定义的连接的名称
hostaddr=127.0.0.1  表示是本机地址
port=5432  表示使用5432端口,自行设置
dbname  表示要访问的数据库的名称
user,password分别表示用户名和密码,根据自己配置的用户名密码更改如:
postgres=# SELECT dblink_connect('local_connect','hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr') as dev;dev
-----OK
(1 行记录)-- 查询所有已链接的dblink
select dblink_get_connections();

PS:

当dblink连接的是同一个PG实例下的不同数据库时,hostaddr就写 127.0.0.1,不用写实际的实例地址。
当是不同实例时,需要写正确的实例,且这两个实例地址间网络是通的。

查询所有已链接的dblink

postgres=# select dblink_get_connections();dblink_get_connections
------------------------{local_connect}
(1 行记录)

执行查询

--跨库查询
SELECT num,id FROM dblink('local_connect','select num,id from hr.demotable') as t(num numeric,id integer);
SELECT * FROM dblink('local_connect','select num,id from hr.demotable') as t(num numeric,id integer);
SELECT * FROM dblink('local_connect','select * from hr.demotable') as t(num numeric,id integer);--跨库查询写入
insert into t_dblink
select * from dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable where id<1000') as t(num numeric,id integer);####使用 dblink 函数从远程数据库获取数据。 local_connect是预先配置好的远程数据库连接名
####dblink 中查询语句被引号括起来,如果查询语句本身有引号,需要多写一个引号做转义
####AS t()表示dblink返回的结果集定义了一个别名't',并指定了每个列的数据类型

关闭连接

-- 关闭远程连接
###在PostgreSQL中dblink是会话级别;会话断开即dblink也关闭。当然也可以在会话中手动关闭
SELECT dblink_disconnect('local_connect');-- 查询所有已链接的dblink
select dblink_get_connections();

dblink 扩展

简便写法

上面使用方法比较繁琐,要先创建 dblink连接才能使用,也可以写成下面这种方式,在一个语句中完成:

--直接写 dblink 方式,预先配置好的到远程数据库的连接名 
SELECT * FROM dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable') as t(num numeric,id integer);create table t_dblink as select * from dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable where 1=2') as t(num numeric,id integer);insert into t_dblink
select * from dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable where id<1000') as t(num numeric,id integer);explain analyze with t_temp as (select * from dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable where id<1000') as t(num numeric,id integer)) 
select a.num,a.id from t_dblink a,t_temp b where a.id=b.id;

使用dblink查询要带有conn_str,非常不简洁,可以考虑在会话使用临时表/视图来保存。

临时表调用方式

postgres=# create temp table t_dblink as SELECT * FROM dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable') as t(num numeric,id integer);
SELECT 1000000
postgres=# select * from t_dblink;
...........--退出后重新进去临时表不存在
postgres=# select * from t_dblink;
错误:  关系 "t_dblink" 不存在
第1行select * from t_dblink;

视图调用方式

如果认为每次查询都要写dblink的一堆信息很麻烦的话,可以在db中建一个view来解决

postgres=# create view  v_dblink as SELECT * FROM dblink('hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr','select * from hr.demotable') as t(num numeric,id integer);
CREATE VIEW
postgres=# select * from v_dblink;
................
--退出后,重新执行
postgres=# select * from v_dblink;

到底选择视图/临时表,看你需求。在PostgreSQL中临时表在会话结束后是不会保持的,这样的好处:不使用的话无需去删除对应的临时表。

跨库执行ddl/dml操作

–如果需要跨库执行ddl、dml操作,使用dblink_exec

SELECT dblink_connect('local_connect','hostaddr=127.0.0.1 port=5432 dbname=hrdb user=hr password=hr') as dev;
SELECT dblink_exec('local_connect', 'create table aa(id int,name varchar(50))');
SELECT dblink_exec('local_connect', 'drop table aa');
SELECT dblink_exec('local_connect', 'insert into hr.t values (1011102,8999,''hello'',''2048-10-09''::date)');
SELECT dblink_exec('local_connect', 'delete from  hr.t values where id=1011102');

总结

PostgreSQL使用这种dblink,存在优势是即取即用,无须在创建其他对象;劣势是只能连通posrgresql的不同数据库,不能进行异构数据库的连通。当然如果需要连接异构的数据库,可以使用Foreign Data Wrapper(FDW)插件,后面再来说说这个的使用方法。

在这里插入图片描述
关注我,学习更多的数据库知识!详情参考:PostgreSQL的dblink扩展模块使用方法


文章转载自:

http://a9R2KVnV.zxwbL.cn
http://JJ6BfTUK.zxwbL.cn
http://iBkkgnup.zxwbL.cn
http://vaQJvBRH.zxwbL.cn
http://n5Fv7OVg.zxwbL.cn
http://7VQcdJjh.zxwbL.cn
http://iaDoOZeh.zxwbL.cn
http://hOEMV9Kd.zxwbL.cn
http://Jz5zk46h.zxwbL.cn
http://l419n46j.zxwbL.cn
http://bDUF1Bam.zxwbL.cn
http://5D3XESCP.zxwbL.cn
http://cPRVuiFj.zxwbL.cn
http://eCuVH1DJ.zxwbL.cn
http://YgKVJsfX.zxwbL.cn
http://Yvgigxsl.zxwbL.cn
http://NpsBIlow.zxwbL.cn
http://YmGp1cfk.zxwbL.cn
http://Kxl5Npbx.zxwbL.cn
http://jQQtddOu.zxwbL.cn
http://V8nKmm0t.zxwbL.cn
http://5MbHkS5r.zxwbL.cn
http://WVxcQcU6.zxwbL.cn
http://8RnPKQFD.zxwbL.cn
http://7DuFiqoc.zxwbL.cn
http://h7HKOFTF.zxwbL.cn
http://QQM2XNOR.zxwbL.cn
http://KKN4oFD1.zxwbL.cn
http://ZDxdi3DU.zxwbL.cn
http://aHJpUK9K.zxwbL.cn
http://www.dtcms.com/wzjs/688322.html

相关文章:

  • 怎样选择网站服务器阳江房地产信息网官方网站
  • 如何用dw做php网站代码广州模板建站软件
  • cn域名注册重庆seo网站哪家好
  • 戴尔公司网站建设特点做网站每页面费用
  • 模板建站多少钱网站建设商家公司
  • 新浪微博 搭建网站企业形象设计调研报告
  • 怎样制作一个网站步骤宁波网站开发服务
  • 公司网站要多大空间什么网站做美式软装设计理念
  • 网站建设与管理的策划书可以做外包的网站
  • 临沂供电公司网站百度推广优化师培训
  • 继续访问这个网站网站后台文件下载
  • 网页和网站设计南宁本地网站设计
  • 沈阳制作公司网站和app网上怎么开店卖产品
  • 鹿寨县住房和城乡建设局网站网站服务器 英文
  • 网站开发实用技术pdf上海市住房和城乡建设网站
  • 网站怎么才能被百度收录网页网站设计公司有哪些
  • 重庆网站制作系统专业餐饮设计公司
  • 惠州网站制作培训网站安全建设方案步骤
  • 咸阳网站设计建设公司广告公司排行榜
  • 宁波有做网站的地方吗金湖网站建设
  • 网站建设基本流程包括哪几个步骤网站编程所用的语言有
  • 网站怎么做png阴影开发小程序要多少钱
  • 重庆南昌网站建设网架公司名字怎么取
  • 河南住房与建设厅网站军事最新消息新闻
  • 网站制作洋网络网站大全正能量免费2020
  • 怎么创建一个网站广州企业网站建站
  • 网站ip备案宝塔面板WordPress优化
  • 济南网站建设鲁icp备模板网站缺点
  • 网站建设是属于软件吗宁夏固原住房和建设局网站
  • 北京网站建设首选小峰淮北论坛招聘最新消息