Vous n'êtes pas identifié(e).
Bonjour à tous,
Je souhaite savoir par l'intermédiaire de la copy est ce que l'on peut renseigner une colonne avec une valeur constante .
Voici la commande suivante
COPY matable(col1, col2, col3,col4) FROM '/dossier/fichier.csv' DELIMITER AS ';' NULL AS '' CSV HEADER QUOTE AS '"'
J'ai les colonnes col1, col2 et col3 de la table matable qui importent les renseignements venant des colonnes du fichier CSV . Seule La colonne col4 n'importe pas les données venant du fichier CSV mais il reçoit une valeur constante .
Peut on importer des données sur ces colonnes (col1,col2 et col3) tout en renseignant la colonne col4 avec une valeur constante ?
Cordialement .
Hors ligne
Bonjour,
il faut utiliser une colonne avec un DEFAULT.
Par exemple, si vos 3 premières colonnes sont des text et la dernière un entier qui doit toujours être "5", il suffit de créer votre table comme ceci :
create table la_table(
col1 text,
col2 text,
col3 text,
col4 integer default 5);
par contre, il faut bien que votre CVS comporte 3 colonnes et non 4.
Dernière modification par arthurr (17/11/2011 16:53:04)
Hors ligne
Par contre, je suis amené à faire une routine d'importations des données de plusieurs fichiers CSV. La colonne col4 peut changer de valeur en fonction du fichier CSV a importer, comment puis je faire dans ce cas ?
Cordialement .
Hors ligne
Bonjour,
si vous utilisez le fonctionnement donné par arthurr, vous pouvez faire un ALTER TABLE la_table ALTER COLUMN col4 valeur; avant chaque COPY.
Julien.
https://rjuju.github.io/
Hors ligne
Oups, désolé.
Dernière modification par frost242 (17/11/2011 17:43:51)
Thomas Reiss
Hors ligne
rjuju: il manque la clause SET DEFAULT, ainsi : ALTER TABLE la_table ALTER COLUMN col4 SET DEFAULT valeur;
Guillaume.
Hors ligne
oups oui j'ai écrit trop vite. L'auto complétion me tuera
Julien.
https://rjuju.github.io/
Hors ligne