誤解があると思います。 2つの列に対する一意の制約は、各列が一意であることを意味するのではなく、組み合わせ 2つの列のうちの1つは一意です。
したがって、must_be_different
prompt_input_value
の一意の制約とは異なります(そして弱い) およびcollect_project_id
。たとえば、3つの行がある場合
collect_project_id | prompt_input_value
--------------------+--------------------
1 | a
1 | b
2 | b
これらは、単一列の一意の制約の両方と競合しますが、must_be_different
とも競合しません。 。
根本的な問題は、INSERT ... ON CONFLICT
を使用したいということだと思います。 複数の固有の制約があります。それはできません。 この質問
を参照してください 議論と潜在的な解決策のために。