sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:algunos problemas para insertar desde seleccionar con conflicto

Creo que hay un malentendido. Una restricción única sobre dos columnas no significa que cada una de las columnas sea única, sino que la combinación de las dos columnas es única.

Así que tu must_be_different es diferente (y más débil) que las restricciones únicas en prompt_input_value y collect_project_id . Por ejemplo, si tiene las tres filas

 collect_project_id | prompt_input_value
--------------------+--------------------
                  1 | a
                  1 | b
                  2 | b

crearán un conflicto con ambas restricciones únicas de una sola columna, pero tampoco con must_be_different .

Supongo que el problema subyacente es que quieres usar INSERT ... ON CONFLICT con múltiples restricciones únicas. Eso no se puede hacer; ver esta pregunta para una discusión y posibles soluciones.