首页 > 数据库 > mysql教程 > 如何在PostgreSQL中进行跨数据库查询?

如何在PostgreSQL中进行跨数据库查询?

Patricia Arquette
发布: 2025-01-12 10:56:43
原创
382 人浏览过

How Can I Perform Cross-Database Queries in PostgreSQL?

在 PostgreSQL 中启用跨数据库查询

虽然 PostgreSQL 最初似乎限制跨数据库查询,但存在一个实用的解决方案。 postgres_fdw(外部数据包装器)模块提供了连接和查询不同 PostgreSQL 数据库中的表所需的功能,无论其位置如何(本地或远程)。

重要注意事项:在单台机器上实现跨数据库查询之前,请探索使用模式。 模式提供了一种更简单的方法来查询不同的数据集,而不需要额外的配置。

postgres_fdw兼容性:

postgres_fdw 模块与 PostgreSQL 版本 9.3 及更高版本兼容。 对于 9.3 之前的版本,dblink 函数提供了类似的解决方案。

实施步骤:

利用postgres_fdw进行跨数据库查询:

  1. 建立外部数据包装器:为目标数据库创建外部数据包装器:
<code class="language-sql">CREATE FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    host 'hostname',
    port '5432',    -- Standard PostgreSQL port
    dbname 'target_database'
);</code>
登录后复制
  1. 定义外部服务器: 创建链接到目标数据库的外部服务器:
<code class="language-sql">CREATE SERVER target_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    user 'username',
    password 'password'
);</code>
登录后复制
  1. 映射用户访问权限: 创建用户映射,授予当前用户对目标数据库的访问权限:
<code class="language-sql">CREATE USER MAPPING FOR current_user SERVER target_server OPTIONS (
    user 'target_user',
    password 'target_password'
);</code>
登录后复制
  1. 导入外部表:将所需的表(或模式)导入到当前数据库:
<code class="language-sql">IMPORT FOREIGN SCHEMA all FROM SERVER target_server INTO schema_name;</code>
登录后复制
  1. 查询导入的表: 现在,像查询本地表一样查询导入的表:
<code class="language-sql">SELECT * FROM schema_name.target_table;</code>
登录后复制

以上是如何在PostgreSQL中进行跨数据库查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板