Tôi muốn thiết lập một bảng trong postgresql sao cho hai cột với nhau phải là duy nhất. Có thể có nhiều giá trị của một trong hai giá trị, miễn là không có hai giá trị đó chia sẻ cả hai.Trong Postgresql, Force duy nhất trên sự kết hợp của hai cột
Ví dụ:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Vì vậy, col1
và col2
có thể lặp lại, nhưng không phải cùng một lúc. Vì vậy, điều này sẽ được phép (Không bao gồm id)
1 1
1 2
2 1
2 2
nhưng không này:
1 1
1 2
1 1 -- would reject this insert for violating constraints
Tôi thích gợi ý của một khóa chính trên duy nhất ở đây, bởi vì chúng tôi không cho phép giá trị NULL trong trường hợp này. Từ các tài liệu PostgeSQL: "Lưu ý rằng một ràng buộc duy nhất không tự cung cấp một mã định danh duy nhất vì nó không loại trừ các giá trị null.)" Https://www.postgresql.org/docs/8.1/static/ddl-constraints .html # AEN2038 – Voles