INSERT ... ON CONFLICT

INSERT ... ON CONFLICT insère une ligne ou, si elle viole une contrainte d'unicité, ne fait rien (DO NOTHING) ou met à jour la ligne existante (DO UPDATE). C'est un « upsert » atomique, sûr en cas d'accès concurrents. EXCLUDED désigne les valeurs qu'on tentait d'insérer.

Exemple

INSERT INTO stock (sku, qte) VALUES ('A1', 5)
ON CONFLICT (sku) DO UPDATE SET qte = stock.qte + EXCLUDED.qte;

Notions voisines

Tout le glossaire