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

5.13. 外部数据 #

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

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

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

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

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

提交更正

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