首先声明,我是从MSSQL阵营刚入PostgreSQL阵营的。转营这几天来,深感这些年来被MSSQL坑害不浅!
进入正题,在MSSQL中,跨数据库(相同服务器或不同服务器的都算)查询可以轻松使用select * from otherdb.dbo.mytable(相同服务器中的不同数据库)或select * from otherserver.otherdb.dbo.mytable(不同服务器中的不同数据库,其中otherserver是个链接服务器)完成,甚是方便!
这几天使用PostgreSQL的时候,突然发现需要在PostgreSQL中实现跨库查询,本以为可以使用类似"数据库.数据表"的方式完成呢,结果失败了……从网上查了下,知道PostgreSQL中需要使用dblink函数实现跨库或跨服务器查询,据说是仿照着Oracle的dblink做的,挺好,试着配置了下,把配置过程详细地下出来,供大家参考。
1、安装dblink扩展
LInux下可以参考:
《PostgreSQL的小技巧》
http://tieba.baidu.com/f?kz=163201318#
Windows下可以参考:
《Windows环境下配置PostgreSql的dblink功能》
http://blog.csdn.net/lr2651/article/details/1375769
注意,我用的是PostgreSQL9.1版的,使用psql -d mydb -f dblink--1.0.sql的时候不成功,说是:
后来,干脆使用
输入密码后,进入plsql的shell里,在这里边输入
返回
表示成功。
2、使用dblink
进入pgAdmin里的Query窗口,执行:
就可以在别的mydb查询postgres库里的东西啦~
dblink的使用可以参考:
a.《关于PostgreSQL跨库查询的问题》
http://topic.csdn.net/u/20100203/14/def81dd8-e6cc-4524-867d-6f4b6f99836c.html
b.《PostgreSQL 8.3.17 Documentation》
http://www.postgresql.org/docs/8.3/static/contrib-dblink.html
3、注意
执行
时,默认的登陆用户名(username)是计算机的用户名,比如,我的是leesonlog,如果数据库里没有这个用户名,那么在之后的输入密码阶段,肯定是过不去的,所以,应该使用
-U参数可以加数据库的登陆名。使用psql可以进入plsql的shell,或者也可以直接从开始菜单中PostgreSQL程序组里双击“SQL Shell (psql)”,然后一路回车,直接进入plsql的shell我把“C:\Program Files\PostgreSQL\9.1\bin”直接加到环境变量的path里了,所以可以直接在任何目录输入psql,否则就需要进入“C:\Program Files\PostgreSQL\9.1\bin”才能执行psql。在PostgreSQL9.1版中,dblink.sql放在“C:\Program
Files\PostgreSQL\9.1\share\extension”文件夹中,而且名字叫“dblink--1.0.sql”,执行“psql -d mydb -f dblink--1.0.sql”时,要指定dblink.sql的文件路径(相对或绝对)。
分享到:
相关推荐
综上所述,通过dblink进行PostgreSQL跨库查询,需要按照创建扩展、连接数据库、开始事务、执行操作、提交事务和断开连接等步骤进行。这一系列操作使得在多个数据库实例之间进行数据操作成为可能,极大地扩展了数据库...
在PostgreSQL中,dblink模块是一个非常有用的工具,它允许你在不同的数据库之间进行通信和查询,从而实现跨库查询。这个功能特别适用于那些需要在多个数据库间共享数据或执行复杂跨库操作的场景。以下是对如何使用...
它能够连接各种类型的数据源,包括关系型数据库、非关系型数据库和文件类型的文本数据源,并通过虚拟数据库(VDB)技术实现跨库查询。本文将详细介绍在Centos环境下搭建Teiid环境并实现跨库查询的步骤,包含关系型、...
这些库文件是PostgreSQL在ARM平台上的核心组成部分,它们包含了执行SQL查询、管理数据、处理并发操作等数据库服务所需的各种函数和数据结构。 描述中提到的"postgresql版本postgresql-11.1.tar.bz2",指的是...
PostgreSQL是一个功能强大的【开源关系型数据库管理系统】,支持SQL标准,并提供了许多高级特性,如事务处理、复杂的查询、多版本并发控制(MVCC)等。其开源属性意味着任何人都可以自由地使用、修改和分发,这极大...
7. **测试连接**:运行你的应用程序,如果一切配置正确,你应该能够成功连接到PostgreSQL数据库并执行查询。 完成上述步骤后,你的应用程序就能够利用Qt 6.2.2的QPSQL驱动与postgresql 14数据库进行数据操作了。这...
1. **跨库数据同步**: FDataX的核心功能是实现不同数据库之间的数据迁移和同步。它可以处理多种类型的数据库,如MySQL、Oracle、SQL Server、PostgreSQL等,让数据能够在各种系统间自由流动,满足多样化的业务需求...
在ArcGIS中,PostgreSQL常被用作数据存储和管理的后端,支持复杂的地理空间查询和分析。 描述中列出的五个文件分别是: 1. **libeay32.dll**:这是OpenSSL库的一部分,提供了加密和安全套接字层(SSL)的功能。在...
此外,PostgreSQL支持多种操作系统,如Windows、Linux和macOS,确保了跨平台的兼容性。 标签"pgs数据库"可能是"PostgreSQL"的一个缩写或别名,它突出了数据库的这一特定类型。在实际应用中,"pgs"常用于指代...
在编程接口方面,PostgreSQL提供了强大的编程接口支持,比如libpq-C库允许C语言程序与PostgreSQL数据库进行交云,ECPG-C是嵌入式SQL C预处理器,而PL/pgSQL则是PostgreSQL的过程语言,它提供了一种比普通的SQL更加...
总之,ArcGIS通过这些32位客户端库文件与PostgreSQL数据库进行安全、高效的通信,以实现地理空间数据的存储、查询、分析和展示。理解和掌握这些文件的作用对于成功配置和维护ArcGIS与PostgreSQL的连接至关重要。
PostgreSQL则以其强大的事务支持、复杂查询能力和ACID(原子性、一致性、隔离性、持久性)特性著称,更倾向于企业级应用和大数据处理。 **数据迁移** 数据迁移是将数据从一个数据库系统转移到另一个的过程。在本例...
repmgr则是PostgreSQL的一个工具,提供了自动或手动的故障切换,支持级联复制和多个备库的自动跟随,选择具有最新xlog的节点进行提升(promote)。 在实际应用中,设计PostgreSQL高可用架构时需要考虑以下因素: - ...
- pgBackRest是一个强大的PostgreSQL备份工具,支持多平台、加密备份、跨主机备份和并发备份。 **四、最佳实践** - 定期备份:根据业务需求设定合理的备份频率,如每天、每周等。 - 多地备份:将备份存放在不同...
这种方式极大地扩展了PostgreSQL的功能,并提供了与Oracle数据库交互的能力,对于需要跨数据库平台工作的场景非常有用。需要注意的是,在实际部署过程中,可能还会遇到各种具体环境下的兼容性和配置问题,需要根据...
- 翻译工作是由全球开发组主导,并且有中文区域的本地化团队参与,表明了社区对于跨文化交流和本地支持的重视。 - 文档中提到的贡献者包括专业翻译人员和软件公司,显示了PostgreSQL项目是一个开放的、多组织协作的...
安装“postgresql-9.5.0-1-windows.exe”文件,用户将获得完整的PostgreSQL服务器、客户端工具和必要的库文件。安装过程中,用户可以配置数据库实例的端口、数据存储位置、超级用户密码等设置。安装完成后,可以通过...