sql >> Databasteknik >  >> RDS >> PostgreSQL

jooq - problem med att känna igen postgres UNIKA begränsning

Som du namngav dina index, antar jag att du inte har en begränsning för dessa kolumner, utan ett 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 *;

Ovanstående ger:

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

Förvandla dock indexet till en begränsning:

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

Och INSERT uttalandet fungerar nu.

Se en förklaring här om skillnaden mellan unika begränsningar och unika index . Detta är inte riktigt relaterat till jOOQ




  1. Hur man hämtar dropdown-värdena från databasen och visar i jsp

  2. Bästa sättet att utveckla/hantera/designa återkommande uppgifter/kalender

  3. PGTune Alternatives - ClusterControl PostgreSQL-konfiguration

  4. hantera HTML-data i Oracle-fråga