Sim, e esse comportamento é padrão. Qualquer violação de restrição exclusiva constitui um conflito e, em seguida, o
UPDATE
é executado se ON CONFLICT DO UPDATE
é especificado. O INSERT
instrução pode ter apenas um único ON CONFLICT
cláusula, mas o conflict_target
dessa cláusula pode especificar vários nomes de coluna, cada um dos quais deve ter um índice, como um UNIQUE
restrição. No entanto, você está limitado a uma única conflict_action
e você não terá informações sobre qual restrição causou o conflito ao processar essa ação. Se você precisar desse tipo de informação ou ação específica dependendo da violação de restrição, você deve escrever uma função de gatilho, mas perderá a atomicidade muito importante do INSERT ... ON CONFLICT DO ...
declaração.