PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 06/03/2019 11:19:03

duple
Membre

upsert postgres insert on conflict

Bonjour,

j'ai une requête du genre :

Si machin1 n'existe pas
    INSERT INTO machin1
    INSERT INTO machin 2 VALUES (curval_sequence_de_machin1)
sinon (machin1 existe)
    UPDATE machin1
    INSERT INTO macin2 VALUES (id_machin1,...)
Fin Si

Maintenant j'aimerai remplacer ces instructions par un simple UPSERT
Genre:
INSERT INTO machin1
ON CONFLICT ON CONSTRAINT la_contrainte_unicite DO
UPDATE machin1

Mais du coup comment faire là pour intégrer également INSERT INTO machin2 ?

Hors ligne

#2 06/03/2019 11:29:08

gleu
Administrateur

Re : upsert postgres insert on conflict

Il vous faudra deux requêtes, une pour insérer dans machin1 et une pour insérer dans machin2. A priori, si je lis bien la doc, vous devriez pouvoir utiliser la clause RETURNING pour récupérer la valeur de la colonne id_machin1.


Guillaume.

Hors ligne

#3 07/03/2019 15:13:32

duple
Membre

Re : upsert postgres insert on conflict

Merci pour la reponse , ah oui on peut faire un returning sur l'update !!
Merci

Hors ligne

Pied de page des forums