Maison >base de données >tutoriel mysql >Comment puis-je interroger différentes bases de données PostgreSQL ?

Comment puis-je interroger différentes bases de données PostgreSQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-12 07:50:41747parcourir

How Can I Query Across Different PostgreSQL Databases?

Utilisez PostgreSQL pour interroger des bases de données

PostgreSQL lui-même ne prend pas en charge nativement les requêtes inter-bases de données, comme l'indique le message d'erreur, mais certaines solutions de contournement sont disponibles. Une solution consiste à utiliser l'extension postgres_fdw.

postgres_fdw

postgres_fdw (packer de données étrangères) vous permet de vous connecter à une table dans n'importe quelle base de données PostgreSQL, quel que soit son emplacement. Pour utiliser cette extension :

  1. Assurez-vous que votre version de Postgres prend en charge postgres_fdw (v9.3 ou supérieure recommandée).

  2. Installez l'extension postgres_fdw dans chaque base de données où vous souhaitez effectuer des requêtes inter-bases de données.

  3. Créer un serveur externe et un mappage utilisateur :

    <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. Créer une table externe :

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

Alternatives avant la version 9.3

Pour les versions de Postgres antérieures à 9.3, vous pouvez utiliser une fonction nommée dblink pour effectuer des requêtes inter-bases de données. Bien qu'il soit maintenu et distribué avec PostgreSQL, son utilisation est différente de postgres_fdw. Consultez la documentation PostgreSQL pour plus de détails sur dblink.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn