PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

jooq - problem z rozpoznawaniem postgresu UNIKALNE ograniczenie

Sposób, w jaki nazwałeś swoje indeksy, zakładam, że nie masz ograniczenia dla tych kolumn, 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 *;

Powyższe daje:

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

Jednak zamień indeks w ograniczenie:

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

Oraz INSERT oświadczenie teraz działa.

Zobacz wyjaśnienie tutaj różnicy między unikalnymi ograniczeniami a unikalnymi indeksami . To nie jest tak naprawdę związane z jOOQ




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używasz Dockera do uruchamiania aplikacji internetowej, nie możesz połączyć się z Postgresql DB?

  2. Jak Atand() działa w PostgreSQL

  3. pytanie o zmienne wiązania postgresql

  4. Nie można zaimportować pliku .csv do Cloud SQL z konsoli

  5. Jak połączyć C# z Postgresem?