PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:alguns problemas para inserir de select com em conflito


Acho que há um mal-entendido. Uma restrição exclusiva em duas colunas não significa que cada uma das colunas seja única, mas que a combinação das duas colunas é único.

Portanto, seu must_be_different é diferente (e mais fraco) do que as restrições exclusivas em prompt_input_value e collect_project_id . Por exemplo, se você tiver as três linhas
 collect_project_id | prompt_input_value
--------------------+--------------------
                  1 | a
                  1 | b
                  2 | b

eles criarão um conflito com ambas as restrições exclusivas de coluna única, mas nem com must_be_different .

Acho que o problema subjacente é que você deseja usar INSERT ... ON CONFLICT com várias restrições exclusivas. Isso não pode ser feito; veja esta pergunta para uma discussão e possíveis soluções.