Bonjour,
Je suis novice dans postgresql quelle est la requête qui permet de migrer des enregistrements d'une table vers une autre.
Merci d'avance
Version imprimable
Bonjour,
Je suis novice dans postgresql quelle est la requête qui permet de migrer des enregistrements d'une table vers une autre.
Merci d'avance
C'est cela que tu cherches ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12 INSERT INTO tb_cible ( col_cbl_1 , col_cbl_2 ... , col_cbl_N ) SELECT col_src_1 , col_src_2 ... , col_src_N FROM tb_source ;
Merci pour la réponse, une précision encore les deux sont dans deux bases de données distinctes. Est-ce la même requête ?
A ma connaissance, tu es est obligé de passer par l'intermédiaire d'un fichier avec COPY
Note :Code:
1
2
3
4
5 -- export COPY ( SELECT ... ) TO /chemin/vers/fichier ; -- import COPY nouvelle_table FROM /chemin/vers/fichier ;
- /chemin/vers/fichier est un chemin sur le serveur PostgreSQL. Si tu n'as pas accès au système de fichier du serveur, tu peux faire unet rediriger la sortie standard vers un fichier en local à l'aide de psql.Code:COPY ( SELECT ... ) TO STDOUT
Code:
1
2psql -h <host> -U <user> -d <database1> -c "COPY ( SELECT ... ) TO STDOUT" > temp.sql
ou d'utiliser un DBLINK !
genre :
A +Code:
1
2
3
4
5 INSERT INTO MatableLocale SELECT * FROM dblink('dbname=???', 'select col1, col2, col3 from table distante') AS T(colA, colB, colC) WHERE colA ...
Ou, si vous êtes en PostGreSQL 9.3, passer par un wrapper de données distantes.