Postgres中不同数据库间无法直接访问,比如有数据库test1和test2,每个数据库中都有一个表为tablea;我使用的操作系统为win8.1,postgres版本为9.3.6;使用pgAdminIII工具访问postgres;

分别在两个数据库(test1,test2)中创建tablea;

test1数据库创建tablea并插入数据:

create table tablea(id int,name varchar(10));

insert into tablea values

(1,’a’),(2,’b’);

test2数据库创建tablea并插入数据:

create table tablea(id int,name varchar(10));

insert into tablea values

(1,’c’),(2,’d’);

从test1数据库中分别访问test1和test2数据库中的表

所报的错误为:未实现数据库关联:”test2.public.tablea”  SQL 状态:0A000

我上面写表是按照:数据库.模式.表名

SQL Server中模式是dbo,访问的时候使用select * from test2.dbo.tablea;个人感觉pgAdminIII和SSMS类似,或者说各个数据库窗口管理工具都类似,Mysql Workbench也类似。

现在先截个图,看看test1数据可test2数据库模式下面的函数个数(全部是0)

在test1数据库中打开SQL窗口,输入create extension dblink;如下图

再在test数据库上刷新下,就会看到模式—public--函数,括号内数字不是0了

然后在SQL窗口中建立连接和查询

select dblink_connect(‘t_connect’,’dbname=test2 host=localhost port=5432 user=postgres password=postgres’);

select * from dblink(‘t_connect’,’select * from tablea’)  as t2(id int,name varchar(10));

上面的select语句其实是利用了dblink(text,text)和dblink_connect(text,text)函数

两个数据库中表的连接其实也类似;还是在test1数据库的SQL窗口查询

select a.*,b.name from tablea a inner join

(select * from dblink('t_connect','select * from tablea') as t2(id int,name varchar(10))) b

on a.id=b.id

就是把这个查询select * from dblink('t_connect','select * from tablea') as t2(id int,name varchar(10))当成一个表就可以了。

很类似SQL Server中链接服务器,查询链接服务器的sql,之前随笔中应该写过SQL Server链接的MySQL,通过SSMS查询MySQL中的数据。

Postgres以前我也没接触过,不过工作中需要使用Postgres,有应用的需求,总要解决!

转载于:https://www.cnblogs.com/cnmarkao/p/4321532.html

Postgres不同数据库间访问相关推荐

  1. postgres的数据库备份和恢复

    备份和恢复 一条命令就可以解决很简单: 这是备份的命令: pg_dump -h 127/0.0.1 -U postgres databasename > databasename.bak 指令解 ...

  2. postgres复制数据库

    介绍 pg_dump备份 只能备份单个数据库,不会导出角色和表空间相关的信息 -F c 备份为二进制格式,压缩存储.并且可被pg_restore用于精细还原 -F p 备份为文本,大库不推荐 更多介绍 ...

  3. 如何通过RamDisk的方法加速小型数据库的访问速度

    应用功能: 数据库中存在大量数据时候,我们的程序启动则比较慢,因此启动从ramdisk中读取数据库可以提高速度. RamDisk简介 本文首先介绍了 如何在rh6.0系统上创建一个RamDisk,然后 ...

  4. opc服务器的数据文件,opc服务器与数据库间数据交换工具

    opc服务器与数据库间数据交换工具 内容精选 换一换 鲲鹏软件栈汇聚各种鲲鹏兼容软件,帮助开发者了解如何将软件移植到鲲鹏上运行,获取操作指导和工具. 来自:其他 "数据导入"章节适 ...

  5. Hadoop和关系型数据库间的数据传输工具——Sqoop

    Hadoop和关系型数据库间的数据传输工具--Sqoop 一.Sqoop简介以及使用 1.1.产生背景 基于传统关系型数据库的稳定性,还是有很多企业将数据存储在关系型数据库中:早期由于工具的缺乏,Ha ...

  6. Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf

    利用Java的多线程技术实现数据库的访问.pdf 第 卷第 期 计算机应用 22 12 Voi .22 , No . 12 年 月 2002 12 Computer Appiications Dec ...

  7. exp导oracle数据库,使用exp/imp 在oracle数据库间导数据

    最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程. 导数据过程分以下几步: 假设源数据库为A,目标数据库为B 1.在B上通 ...

  8. json数据解析_ORACLE中Clob字段在不同数据库间自由地飞翔——SQL+JSON字段解析

    在不同的oracle数据库间复制一张包含clob字段的表,你会收到如下礼物: select cloba from tab_test@link_test; 肿么办? 1.to_char select t ...

  9. 数据库防火墙——实现数据库的访问行为控制、危险操作阻断、可疑行为审计...

    转自百度百科 数据库防火墙系统,串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题,是一款基于数据库协议分析与控制技术的数据库安全防护系统.DBFirewall基于主动防御机制,实现数据 ...

最新文章

  1. ffmpeg 把视频解码成jpg
  2. el-table处理某一行样式;el-table表格row-class-name无效原因;el-table格式化某行样式和数据
  3. Moodle: 获取老师的课程 Get Faculty Course Profiles
  4. windows 字符编码总结
  5. C#基础12.1:Object类
  6. soapUI接口测试工具
  7. 蚂蚁课堂视频笔记思维导图-3期 三、性能优化专题
  8. F2FS源码分析-1.1 [F2FS 元数据布局部分] F2FS文件系统的总体结构
  9. 【信息系统项目管理师】项目管理十大知识领域速记
  10. spoonwep破解方式使用心得
  11. 强烈推荐非常好用的网站
  12. GLUE数据集介绍:RTE、MRPC、SST-2、QNLI、MNLI、QQP
  13. tradecenter日内交易_一个华尔街交易员一天的工作是怎样的?
  14. win10迁移C盘Administrator目录
  15. 只查看ett.txt文件(100行)内第20行到30行的内容
  16. Delphi 仿QQ皮肤控件设计与运行效果图
  17. Linux在安装Python时:zipimport.ZipImportError: can‘t decompress data; zlib not available
  18. Django及Flask漏洞合集
  19. IObit Advanced SystemCare 系统清理优化工具
  20. 仿视频字幕弹幕网站Miko二次元动漫视频网站源码

热门文章

  1. wxpython制作表格界面_Python wxPython库使用wx.ListBox创建列表框示例
  2. java Map及其实现类的底层原理
  3. 为什么C++构造函数不能是虚函数
  4. C++ STL string字符串内容修改和替换
  5. [总结] 本人代表性博客总结
  6. [python + debug] set()操作对象的元素为字符串,则结果随机排序,使用sorted()函数以固定顺序
  7. git原理和常用操作
  8. 贺利坚老师汇编课程66笔记:自定义除法中断学习如何编制中断程序
  9. php mongo save,MongoDB:使用save()更新集合中的现有文档
  10. css代码颜色十六进制大全