PostgreSQL copier/transférer des données à partir d'une base de données à un autre
J'ai besoin de copier les données d'une table à l'autre. les deux tables ont presque la même structure, mais sont dans différentes bases de données.
j'ai essayé
INSERT INTO db1.public.table2(
id,
name,
adress,
lat,
lng
)
SELECT
id,
name,
adress,
lat
lng
FROM db2.public.table2;
wenn j'essaie ceci, j'obtiens le message d'erreur de la croix-base de données ... pas mis en œuvre
Travailler avec les données dans plusieurs bases de données est l'un des (rares) des choses qui est plus difficile dans Postgres que dans la plupart des autres bases de données. Un endroit pour commencer est de comprendre foreign data wrappers: postgresql.org/docs/current/static/postgres-fdw.html.
OriginalL'auteur fabvys | 2016-04-07
Vous devez vous connecter pour publier un commentaire.
C'est vraiment une tâche simple. Utilisez simplement dblink à cet effet:
Si vous avez besoin d'extraire des données à partir de la base de données externe sur une base régulière, il serait judicieux de définir un serveur et de mappage de l'utilisateur. Ensuite, vous pouvez utiliser plus courte déclaration:
Si il y a
where
clauseSELECT a, b, c FROM t
, comment échapper les guillemets simples?OriginalL'auteur voytech
Il y a aussi un autre moyen de le faire. Si dblink extension n'est pas disponible, il est possible de copier les données directement en ligne de commande, à l'aide de tuyau de raccordement standard d'entrée et de sortie:
Mais ça va marcher seul dans postgresql 9.4 ou plus
OriginalL'auteur voytech
Si vous êtes sur postgresql 9.0 ou version ultérieure (et probablement 8.0 ou version ultérieure) dans un psql session, vous pouvez également utiliser:
La new_database sera un clone de original_database, y compris les tableaux, schéma de la table, de l'encodage et de données.
À partir de la documentation:
Je vous recommande de vérifier que le clone est tout à fait correct avec judicieuse sélectionne l'ancienne et la nouvelle db tables. Les docs disent aussi:
OriginalL'auteur dpneumo