首页 >数据库 >mysql教程 >如何跨不同PostgreSQL数据库查询?

如何跨不同PostgreSQL数据库查询?

Barbara Streisand
Barbara Streisand原创
2025-01-12 07:50:41748浏览

How Can I Query Across Different PostgreSQL Databases?

使用PostgreSQL跨数据库查询

PostgreSQL本身并不原生支持跨数据库查询,正如错误信息所示,但有一些变通方法可用。其中一种方法是使用postgres_fdw扩展。

postgres_fdw

postgres_fdw(外部数据包装器)允许您连接到任何PostgreSQL数据库中的表,无论其位置如何。要使用此扩展:

  1. 确保您的Postgres版本支持postgres_fdw(建议使用v9.3或更高版本)。

  2. 在您希望执行跨数据库查询的每个数据库中安装postgres_fdw扩展。

  3. 创建外部服务器和用户映射:

    <code class="language-sql"> postgres=# CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'remote_host', port '5432');
     postgres=# CREATE USER MAPPING FOR CURRENT_USER SERVER foreign_server OPTIONS (user 'remote_user', password 'remote_password');</code>
  4. 创建外部表:

    <code class="language-sql"> postgres=# CREATE FOREIGN TABLE cross_db_table SERVER foreign_server OPTIONS (table_name 'remote_table');</code>

9.3版本之前的替代方案

对于9.3之前的Postgres版本,可以使用名为dblink的函数进行跨数据库查询。虽然它与PostgreSQL一起维护和分发,但其使用方法与postgres_fdw不同。有关dblink的更多详细信息,请参阅PostgreSQL文档。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn