Ik denk dat er een misverstand is. Een unieke beperking over twee kolommen betekent niet dat elk van de kolommen uniek is, maar dat de combinatie van de twee kolommen is uniek.
Dus je must_be_different
is anders (en zwakker) dan de unieke beperkingen op prompt_input_value
en collect_project_id
. Als u bijvoorbeeld de drie rijen
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
ze zullen een conflict creëren met zowel unieke beperkingen met één kolom, maar ook niet met must_be_different
.
Ik denk dat het onderliggende probleem is dat je INSERT ... ON CONFLICT
. wilt gebruiken met meerdere unieke beperkingen. Dat kan niet; zie deze vraag
voor een discussie en mogelijke oplossingen.