Myślę, że zaszło nieporozumienie. Unikalne ograniczenie dwóch kolumn nie oznacza, że każda z nich jest unikalna, ale że kombinacja z dwóch kolumn jest unikalny.
Więc twój must_be_different
jest inny (i słabszy) niż unikalne ograniczenia w prompt_input_value
i collect_project_id
. Na przykład, jeśli masz trzy wiersze
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
spowodują konflikt z obydwoma jednokolumnowymi unikalnymi ograniczeniami, ale ani z must_be_different
.
Myślę, że podstawowym problemem jest to, że chcesz użyć INSERT ... ON CONFLICT
z wieloma unikalnymi ograniczeniami. Tego się nie da zrobić; zobacz to pytanie
do dyskusji i potencjalnych rozwiązań.