2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

5.13. 外部数据 #

PostgreSQL 实现 SQL/MED 规范的部分内容,允许您使用常规 SQL 查询访问 PostgreSQL 之外的数据。此类数据称为 外部数据。(请注意,此用法不应与外键混淆,外键是数据库内部的一种约束类型)。

通过 外部数据包装器 来访问外部数据。外部数据包装器是一个可以与外部数据源通信的库,它隐藏了连接到数据源和从中获取数据的细节。一些外部数据包装器作为 contrib 模块提供;请参阅 附录 F。其他类型的外部数据包装器可能作为第三方产品提供。如果现有的外部数据包装器不能满足您的需求,您可以自己编写;请参阅 第 58 章

要访问外部数据,您需要创建一个 外部服务器 对象,该对象根据其支持的外部数据包装器使用的选项集定义如何连接到特定的外部数据源。然后,您需要创建一个或多个 外部表,它们定义远程数据的结构。外部表可以在查询中像普通表一样使用,但外部表在 PostgreSQL 服务器中没有存储。每当使用外部表时,PostgreSQL 都会要求外部数据包装器从外部源获取数据,或者在更新命令的情况下将数据传输到外部源。

访问远程数据可能需要向外部数据源进行身份验证。此信息可以由 用户映射 提供,该映射可以根据当前的 PostgreSQL 角色提供其他数据,例如用户名和密码。

有关更多信息,请参阅 CREATE FOREIGN DATA WRAPPERCREATE SERVERCREATE USER MAPPINGCREATE FOREIGN TABLEIMPORT FOREIGN SCHEMA

提交更正

如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表格 报告文档问题。