# 5.12.国外数据

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

外国数据是在计算机的帮助下访问的国外数据包装器.外部数据包装器是一个库,可以与外部数据源通信,隐藏连接到数据源并从中获取数据的详细信息。有一些国外的数据包装器可供选择contrib模块;看见附录F。其他类型的外国数据包装可能会被发现为第三方产品。如果现有的外国数据包装器都不适合您的需要,您可以编写自己的数据包装器;看见第57章.

要访问外部数据,需要创建外部服务器对象,它定义了如何根据其支持的外部数据包装器使用的一组选项连接到特定的外部数据源。然后你需要创建一个或多个外国餐桌,它定义了远程数据的结构。外部表可以像普通表一样用于查询,但外部表在PostgreSQL server中没有存储。无论何时使用,PostgreSQL都会要求外部数据包装器从外部源获取数据,或者在使用update命令时将数据传输到外部源。

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

有关更多信息,请参阅创建外部数据包装器, 创建服务器, 创建用户映射, 创建外部表导入外部模式.