跨库访问常用的三种方式:schema,dblink,postgres_fdw

第一种:schema(架构方式)

其实还是在一个数据库中,只不过把不同数据保存在不同的架构中,创建与public并行的架构

访问其他架构下面的需要带上架构名称.表名,如下格式

select * from public.test;

select * from test.test1;

如果认为输入框架名称太麻烦,可以设置

set search_path to "$user",public,test; 前面是固定格式,后面是对应要访问的两个框架,第一个参数为本框架,另一个为要访问的框架,设置完成后访问直接可以访问表名,不需要加架构名称

在public访问test框架中的test1表:select * from test1;

第二种,dblink

跨库查询必须使用dblink,无法像Oracle那样,授权然后直接访问

首先创建扩展

create extension

dblink;

再去查询

select * from dblink('host=127.0.0.1 dbname=postgres user=postgres password=123456','select * from account') as t(id int,name varchar(10));

如果要查询别的数据库的东西,可以创建视图,然后从视图中查询

第三种 postgres_fdw

首先安装该扩展

CREATE EXTENSION postgres_fdw;

然后使用CREATE SERVER创建一个外部服务器。在这个示例中,我们希望连接到主机为192.83.123.89 的PostgreSQL服务器,监听端口为5432。远程服务器上做连接的数据库名为situation

CREATE SERVER foreign_server

FOREIGN DATA WRAPPER postgres_fdw

OPTIONS (host '192.168.6.168', port '5432', dbname 'situation');

也需要一个使用CREATE USER MAPPING定义的用户映射,辨认将要在远程服务器上使用的角色:

CREATE USER MAPPING FOR postgres

SERVER foreign_server

OPTIONS (user 'postgres', password 'admin@110');

现在可以用CREATE FOREIGN TABLE创建一个外部表了。在这个示例中,我们希望访问远程服务器上名为some_schema.some_table 的表。它的本地名为foreign_table:chatgroup为远程表名

CREATE FOREIGN TABLE foreign_table (

id text NOT NULL,

groupid text,

userid text,

createuserid text,

createtime timestamp

)

SERVER foreign_server

OPTIONS (schema_name 'public', table_name 'chatgroup');

查询数据

select * from foreign_table;

oracle 将查询出的数据加1-10_PostgreSQL数据库跨库访问相关推荐

  1. sql 加一列 数字_sql语句中查询出的数据添加一列,并且添加默认值

    查询出数据,并且要添加一列表中都不存在的数据,且这一列的值都是相等的 select app_id,app_secret from wx_ticket group by app_id; 查询出的数据是 ...

  2. 查询出的数据记录字段要与实体类中的属性名一致

    查询出的数据记录字段要与实体类中的属性名一致 转载于:https://www.cnblogs.com/1020182600HENG/p/6183031.html

  3. sql语句中查询出的数据添加一列,并且添加默认值

    查询出数据,并且要添加一列表中都不存在的数据,且这一列的值都是相等的 select app_id,app_secret from wx_ticket group by app_id; 查询出的数据是 ...

  4. 微服务架构下,解决数据库跨库查询的一些思路

    开局先总结一下:现在很多厂都进行了微服务的开发模式,但是呢,业务的拆分的时候如果存在交叉是一件非常头大的事情,所以大家写微服务尽量不要交叉的写,比如新增用户如果已经存在在userservice里面了那 ...

  5. SQL语句查询出的数据进行字符串拼接,oracle批量删除数据库用户实例演示

    通过 dba_users 表可以查询出所有的数据库用户,我下面筛选了所有 HR 开头的数据库用户,要把他们都删掉. select username from dba_users where usern ...

  6. oracle随机取名,oracle 表查询随机抽取数据

    最近在做系统时用到了随机抽取记录的问题: 上网上查找了很多相关资料,发现了不同的方法及其差异.都是基于ORACLE的方法哦 首先第一个是随机抽取6个 select * from  (select * ...

  7. 微服务跨数据库联合查询_微服务架构下,解决数据库跨库查询的一些思路

    加关注,不迷路! 前言 在服务做微服务改造后,原先单库join查询已经不能满足要求,每个拆分的微服务对应一个数据库实例,而且部署在不同的服务器上,那么解决"跨库查询"就势在必行了. ...

  8. oracle 导数据报exp00058_一文看懂oracle12c数据库跨小版本迁移

    概述 简单记录一下最近做的一个测试环境迁移,主要是从12.2.0.1 跨两个小版本迁移到19c(12.2.0.3),操作系统均为centos7,下面一起来看看吧~ 一.导出测试环境数据 1. 创建路径 ...

  9. 微服务跨数据库联合查询_数据库跨库查询

    由于微服务技术发展迅猛,在我们的架构中,每个微服务都会相应的对接一个数据库,各个数据库之间有关联的表(比如用户表.业务表等)会互相同步数据,其他的数据操作各自独立(如日志表.操作表等),这么设计是基于 ...

最新文章

  1. 微信公众号Java开发-笔记02【开发接入准备、开发接入】
  2. 复试计算机网络与软件工程,2018华南理工大学软件工程复试经验贴
  3. 关于推送系统设计的一些总结与思考(三)
  4. 机器学习集成模型学习——Stacking集成学习(五)
  5. vue如何和PHP交互,VUE中如何使用Vue-resource完成交互
  6. Labview自适应屏幕分辨率
  7. 超全蓝牙芯片原厂总结(含芯片型号)
  8. Git学习笔记--廖雪峰官网教程
  9. MDClub 轻量级网论坛源码
  10. 卡巴斯基2010激活码
  11. golang学习笔记(6)-gorm实现查询功能
  12. Tree Traversal(二叉树的遍历)
  13. Google Play App Store 年度最佳应用及游戏盘点
  14. 一元二次求解matlab程序,怎么用matlab解一元二次方程
  15. 如何绘制UML用例图
  16. 硬盘变为RAW格式,数据还能恢复吗?
  17. 狙击精英4服务器文件,狙击精英4联机补丁
  18. [-Flutter 自组篇-] 蛛网图+绘制+动画实践
  19. The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .cl
  20. 方舟上的李德磊--记方舟科技董事长兼总裁李德磊校友

热门文章

  1. 机器学习系列之神经网络入门基础知识
  2. 10分钟带你入门MATLAB
  3. Linux 运维故障排查思路,有这篇文章就够了
  4. java classifier_Java ZeroR.buildClassifier方法代码示例
  5. QT关于使用MSVC之后,之前用MGW编译代码,用这个GDB调试器出现error
  6. JAVA API实现HDFS操作(二)操作函数
  7. 【算法数据结构Java实现】折半查找
  8. 分布式系统中的限流与熔断
  9. 全链路监控方案概述与比较
  10. sed命令详解--转