Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Sun 21 March 2021 10:33

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 210

Postgresql 9.3 ajouter des champs avant insert

Bonjour, j'aimerais ajouter des lignes d'une table à l'autre tout en ajoutant les champs manquant dans la table de destination au préalable. Avez vous une idée ?
Bien cordialement,
Romary

Hors ligne

 

#2 Mon 22 March 2021 09:53

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Postgresql 9.3 ajouter des champs avant insert

Bonjour,

Avec un insert into ... select ..., vous pouvez choisir les lignes à insérer et rajouter des valeurs littérales dans le select pour completer les colonnes:

Code:

insert into matable (col1, col2, col3)
select 'toto', t.col2, t.col2
from autretable t 
where ...

la colonne matable.col1 prendra la valeur 'toto' pour toutes les lignes insérées.

Nicolas

Hors ligne

 

#3 Mon 22 March 2021 10:34

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 210

Re: Postgresql 9.3 ajouter des champs avant insert

Bonjour, cette requête je la connais. Ce que je veux c'est ajouter des champs à la table avant l'import mais de façon automatique. Si le champ n'existe pas alors add column... Cela existe ?

Hors ligne

 

#4 Mon 22 March 2021 11:55

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Postgresql 9.3 ajouter des champs avant insert

Ah ok. Le mieux pour cela est de passer par une fonction plpgsql ou un bloc anonyme (do... ).

Dans ce code, vous pourrez lister les colonnes d'une table (select * from information_schema.columns where table_name = '' and  schema_name = '') et s'il en manque, en ajouter.

PLPGSQL est proche du sql, assez facile à écrire et permet de faire bcp de choses en SQL.

Nicolas

Hors ligne

 

#5 Mon 22 March 2021 13:22

Romary
Participant assidu
Lieu: Epinal
Date d'inscription: 17 Jun 2011
Messages: 210

Re: Postgresql 9.3 ajouter des champs avant insert

Merci je vais regarder ce que je trouve de ce côté là alors.

Hors ligne

 

Pied de page des forums

Powered by FluxBB