Você sabe o que significa "exclusão suave"? Isso significa que cada operação "delete" será convertida em SQL que apenas define alguns
deleted
sinalizar para true
. E se você inserir outra linha com o mesmo valor do campo exclusivo que possui uma linha de exclusão reversível, você receberá esta mensagem. Você tem duas maneiras de resolver esse problema:
- Crie seu índice exclusivo com duas colunas:seu campo exclusivo original e
deleted
bandeira. Então você receberá este erro apenas quando tentar adicionar uma linha com os valores de campos exclusivos existentes apenas para não exclusão reversível. - Evite cometer esta violação:você deve excluir a possibilidade de adicionar uma linha que duplique outra em campos exclusivos.
A segunda é a melhor abordagem IMHO.