Sí, y este comportamiento es el predeterminado. Cualquier violación de restricción única constituye un conflicto y luego UPDATE
se realiza si ON CONFLICT DO UPDATE
está especificado. El INSERT
declaración puede tener sólo un único ON CONFLICT
cláusula, pero el conflict_target
de esa cláusula puede especificar varios nombres de columna, cada uno de los cuales debe tener un índice, como UNIQUE
restricción. Sin embargo, está limitado a una sola conflict_action
y no tendrá información sobre qué restricción causó el conflicto al procesar esa acción. Si necesita ese tipo de información, o una acción específica dependiendo de la violación de la restricción, debe escribir una función de activación, pero luego pierde la atomicidad tan importante del INSERT ... ON CONFLICT DO ...
declaración.