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
(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 :
Assurez-vous que votre version de Postgres prend en charge postgres_fdw
(v9.3 ou supérieure recommandée).
Installez l'extension postgres_fdw
dans chaque base de données où vous souhaitez effectuer des requêtes inter-bases de données.
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>
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>
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!