Comme il s'agit du meilleur résultat Google pour l'erreur :
ON CONFLICT DO UPDATE command cannot affect row a second time
J'ajouterai que cela peut être causé par un conflit en double VALUES , par exemple
INSERT INTO distributors (did, dname)
VALUES
(5, 'Gizmo Transglobal'),
(5, 'Associated Computing, Inc')
ON CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;
Dans ce cas, nous essayons d'insérer deux valeurs avec dim
mis à 5
. Comme dim
est l'index qu'il ne peut pas y avoir de conflit dans la requête elle-même.
J'ai rencontré cette erreur lors de la mise en œuvre du microservice et du traitement des demandes, certaines d'entre elles ayant des enregistrements en double.