sql >> Databáze >  >> RDS >> PostgreSQL

jooq - problém rozpoznat postgres UNIKÁTNÍ omezení

Jak jste pojmenovali své indexy, předpokládám, že na tyto sloupce nemáte omezení, ale 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 *;

Výše uvedené produkuje:

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

Změňte však index na omezení:

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

A INSERT příkaz nyní funguje.

Podívejte se zde na vysvětlení rozdílu mezi jedinečnými omezeními a jedinečnými indexy . S jOOQ to opravdu nesouvisí




  1. Jak nastavím LINESIZE a PAGESIZE pomocí substituční proměnné?

  2. Google Chart API využívá hodnotu data a času

  3. Zdůvodnění nového Macu Pro

  4. Jaká je maximální velikost VARCHAR2 v PL/SQL a SQL?