La façon dont vous avez nommé vos index, je suppose que vous n'avez pas de contrainte sur ces colonnes, mais un UNIQUE INDEX
:
CREATE TABLE T (a INT PRIMARY KEY, b INT, c INT);
CREATE UNIQUE INDEX u ON t(b);
INSERT INTO T (a, b, c)
VALUES (1, 2, 3)
ON CONFLICT ON CONSTRAINT u
DO UPDATE SET c = 4
RETURNING *;
Ce qui précède produit :
[42704]: ERROR: constraint "u" for table "t" does not exist
Cependant, transformez l'index en contrainte :
DROP INDEX u;
ALTER TABLE t ADD CONSTRAINT u UNIQUE (b);
Et le INSERT
l'instruction fonctionne maintenant.
Voir une explication ici sur la différence entre les contraintes uniques et les index uniques . Ce n'est pas vraiment lié à jOOQ