Tôi nghĩ rằng có một sự hiểu lầm. Ràng buộc duy nhất trên hai cột không có nghĩa là mỗi cột là duy nhất, mà là sự kết hợp trong số hai cột là duy nhất.
Vì vậy, must_be_different
của bạn khác (và yếu hơn) so với các ràng buộc duy nhất trên prompt_input_value
và collect_project_id
. Ví dụ:nếu bạn có ba hàng
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
chúng sẽ tạo ra xung đột với cả ràng buộc duy nhất một cột, nhưng cũng không với must_be_different
.
Tôi đoán rằng vấn đề cơ bản là bạn muốn sử dụng INSERT ... ON CONFLICT
với nhiều ràng buộc duy nhất. Điều đó không thể được thực hiện; xem câu hỏi này
để thảo luận và đưa ra các giải pháp tiềm năng.