sql >> Database >  >> RDS >> PostgreSQL

jooq - probleem met het herkennen van postgres UNIEKE beperking

Zoals u uw indexen een naam hebt gegeven, neem ik aan dat u geen beperking op die kolommen hebt, maar een 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 *;

Het bovenstaande levert:

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

Verander de index echter in een beperking:

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

En de INSERT verklaring werkt nu.

Bekijk hier een uitleg over het verschil tussen unieke beperkingen en unieke indexen . Dit is niet echt gerelateerd aan jOOQ




  1. Hoe een IP op te slaan in mySQL

  2. Tijd invoegen met tijdzone zomertijd

  3. oracle PL/SQL:rijen sorteren

  4. Records invoegen in een MySQL-tabel met Java