多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 5.10\. 外部数据 PostgreSQL实现了SQL/MED规范的一部分, 允许使用规则的SQL查询访问驻留在PostgreSQL外部的数据。 这样的数据被称为_外部数据_。 (请注意这种使用不能同外键混淆,外键是数据库的一种约束类型。) 外部数据是通过_外部数据封装器_的帮助来访问的。 一个外部数据封装器是一个可以与外部数据源沟通的库,隐藏与外部数据源连接的细节并且从外部数据源获得数据。 这里有几个作为`贡献`模板的可用外部数据封装器,见[Appendix F](#calibre_link-367)。 其他类型的外部数据封装器可能会在第三方产品中见到。 如果现存的外部数据封装器没有适合你的需要的,你可以自己写一个;见[Chapter 52](#calibre_link-1498)。 要访问外部数据,你需要创建一个_外部服务器_对象, 它定义了如何根据支持的外部数据封装器设置的选项,连接到一个特定的外部数据源。 然后你需要创建一个或多个_外部表_,它定义了远程数据的结构。 一个外部表可以像普通表那样用于查询,但是外部表不会存储在PostgreSQL服务器中。 无论何时用到外部表,PostgreSQL要求外部数据封装器从外部源获取数据, 或者在更新命令时传输数据到外部源。 访问远程数据可能需要到外部数据源的验证。这个信息可以通过一个_用户映射_来提供, 用户映射可以根据当前的PostgreSQL角色提供额外的数据,如用户名和密码。 要获取更多的信息,请参阅 [CREATE FOREIGN DATA WRAPPER](#calibre_link-2), [CREATE SERVER](#calibre_link-6),[CREATE USER MAPPING](#calibre_link-68)和 [CREATE FOREIGN TABLE](#calibre_link-0)。