PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

jooq - проблем с разпознаването на postgres UNIQUE ограничение

Начинът, по който наименувахте вашите индекси, предполагам, че нямате ограничение за тези колони, а 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 *;

Горното произвежда:

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

Превърнете обаче индекса в ограничение:

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

И INSERT изразът вече работи.

Вижте тук обяснение за разликата между уникалните ограничения и уникалните индекси . Това всъщност не е свързано с 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. Функция JPA lower() на параметър

  2. Как да получите играч с максимален резултат от всяка група с помощта на SQL?

  3. Как да получите имена и типове на колони от PostgreSQL заявка (без да я стартирате)?

  4. Пролетни данни, връщащи List<Object[]>

  5. PG::Грешка - препълване на числовото поле на Heroku