sql >> Database teknologi >  >> RDS >> PostgreSQL

jooq - problem med at genkende postgres UNIK begrænsning

Den måde du navngav dine indekser på, går jeg ud fra, at du ikke har en begrænsning på disse kolonner, men et 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 *;

Ovenstående producerer:

[42704]: ERROR: constraint "u" for table "t" does not exist

Gør dog indekset til en begrænsning:

DROP INDEX u;
ALTER TABLE t ADD CONSTRAINT u UNIQUE (b);

Og INSERT erklæring virker nu.

Se en forklaring her om forskellen mellem unikke begrænsninger og unikke indekser . Dette er ikke rigtig relateret til jOOQ




  1. Midlertidige tabeller virker ikke i PHPMyAdmin

  2. Postgres tid med tidszone lighed

  3. SQL Server krydsdatabasealias

  4. Hvad sker der med Mysql float?