PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

jooq - vấn đề khi nhận dạng ràng buộc DUY NHẤT của postgres

Theo cách bạn đặt tên cho các chỉ mục của mình, tôi cho rằng bạn không có ràng buộc đối với các cột đó, mà là 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 *;

Ở trên tạo ra:

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

Tuy nhiên, hãy biến chỉ mục thành một ràng buộc:

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

INSERT tuyên bố hiện hoạt động.

Xem giải thích tại đây về sự khác biệt giữa các ràng buộc duy nhất và chỉ mục duy nhất . Điều này không thực sự liên quan đến 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. MySQL và PostgreSQL? Tôi nên chọn cái nào cho dự án Django của mình?

  2. Duy trì thứ tự của string_agg riêng biệt bên trong

  3. Làm cách nào để chọn nhiều hàng chứa hằng số trong Amazon Redshift?

  4. Sắp xếp các giá trị cột riêng biệt theo (giá trị đầu tiên của) cột khác trong hàm tổng hợp

  5. Mô hình hóa các đối tượng lớn của PostgreSQL trong Rails