Maison >base de données >tutoriel mysql >Comment puis-je effectuer des requêtes inter-bases de données dans PostgreSQL ?

Comment puis-je effectuer des requêtes inter-bases de données dans PostgreSQL ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-12 10:56:43382parcourir

How Can I Perform Cross-Database Queries in PostgreSQL?

Activation des requêtes inter-bases de données dans PostgreSQL

Bien que PostgreSQL puisse initialement sembler restreindre les requêtes entre bases de données, une solution pratique existe. Le module postgres_fdw (étranger data wrapper) fournit les fonctionnalités nécessaires pour se connecter et interroger des tables dans différentes bases de données PostgreSQL, quel que soit leur emplacement (local ou distant).

Considération importante : Avant d'implémenter des requêtes inter-bases de données sur une seule machine, explorez l'utilisation de schémas. Les schémas offrent une approche plus simple pour interroger différents ensembles de données sans nécessiter de configuration supplémentaire.

postgres_fdw Compatibilité :

Le module postgres_fdw est compatible avec les versions PostgreSQL 9.3 et ultérieures. Pour les versions antérieures à 9.3, la fonction dblink propose une solution comparable.

Étapes de mise en œuvre :

Pour exploiter postgres_fdw pour les requêtes inter-bases de données :

  1. Établir un wrapper de données étrangères : Créer un wrapper de données étrangères pour la base de données cible :
<code class="language-sql">CREATE FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    host 'hostname',
    port '5432',    -- Standard PostgreSQL port
    dbname 'target_database'
);</code>
  1. Définir un serveur étranger : Créer un serveur étranger lié à la base de données cible :
<code class="language-sql">CREATE SERVER target_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (
    user 'username',
    password 'password'
);</code>
  1. Mapper l'accès utilisateur : Créer un mappage utilisateur accordant à l'utilisateur actuel l'accès à la base de données cible :
<code class="language-sql">CREATE USER MAPPING FOR current_user SERVER target_server OPTIONS (
    user 'target_user',
    password 'target_password'
);</code>
  1. Importer la table étrangère : Importez la table (ou le schéma) souhaité dans votre base de données actuelle :
<code class="language-sql">IMPORT FOREIGN SCHEMA all FROM SERVER target_server INTO schema_name;</code>
  1. Interrogez la table importée :Maintenant, interrogez la table importée comme s'il s'agissait d'une table locale :
<code class="language-sql">SELECT * FROM schema_name.target_table;</code>

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