Ich glaube da liegt ein Missverständnis vor. Eine Eindeutigkeitsbeschränkung über zwei Spalten bedeutet nicht, dass jede der Spalten eindeutig ist, sondern dass die Kombination der beiden Spalten ist eindeutig.
Ihr must_be_different
sein ist anders (und schwächer) als die eindeutigen Beschränkungen für prompt_input_value
und collect_project_id
. Zum Beispiel, wenn Sie die drei Zeilen
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
Sie erzeugen einen Konflikt mit beiden einspaltigen eindeutigen Einschränkungen, aber auch nicht mit must_be_different
.
Ich denke, das zugrunde liegende Problem ist, dass Sie INSERT ... ON CONFLICT
verwenden möchten mit mehreren eindeutigen Einschränkungen. Das geht nicht; siehe diese Frage
für eine Diskussion und mögliche Lösungen.