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
Libérer: 2025-01-12 10:56:43
original
381 Les gens l'ont consulté

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>
Copier après la connexion
  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>
Copier après la connexion
  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>
Copier après la connexion
  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>
Copier après la connexion
  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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal