Je pense qu'il y a un malentendu. Une contrainte d'unicité sur deux colonnes ne signifie pas que chacune des colonnes est unique, mais que la combinaison des deux colonnes est unique.
Donc, votre must_be_different
est différent (et plus faible) que les contraintes uniques sur prompt_input_value
et collect_project_id
. Par exemple, si vous avez les trois lignes
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
ils créeront un conflit avec les deux contraintes uniques à une seule colonne, mais ni avec must_be_different
.
Je suppose que le problème sous-jacent est que vous souhaitez utiliser INSERT ... ON CONFLICT
avec plusieurs contraintes uniques. Cela ne peut pas être fait; voir cette question
pour une discussion et des solutions potentielles.