PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

jooq - masalah mengenali kendala UNIK postgres

Cara Anda menamai indeks Anda, saya berasumsi Anda tidak memiliki batasan pada kolom tersebut, tetapi 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 *;

Di atas menghasilkan:

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

Namun, ubah indeks menjadi batasan:

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

Dan INSERT pernyataan sekarang berfungsi.

Lihat penjelasan di sini tentang perbedaan antara batasan unik dan indeks unik . Ini tidak benar-benar terkait dengan 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. Pilih tipe data bidang di postgres

  2. Penulisan kerangka data ke Postgresql berkinerja buruk

  3. Instalasi PostgresSQL 9.5 gagal:"inisialisasi cluster database gagal" MAC os (lebih besar 11.4)

  4. Heroku - buang dan muat satu tabel ke database postgres bersama

  5. Bagaimana Atan2() Bekerja di PostgreSQL