Начинът, по който наименувахте вашите индекси, предполагам, че нямате ограничение за тези колони, а 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 *;
Горното произвежда:
[42704]: ERROR: constraint "u" for table "t" does not exist
Превърнете обаче индекса в ограничение:
DROP INDEX u;
ALTER TABLE t ADD CONSTRAINT u UNIQUE (b);
И INSERT
изразът вече работи.
Вижте тук обяснение за разликата между уникалните ограничения и уникалните индекси . Това всъщност не е свързано с jOOQ