Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Doctrine 2 @Gedmo\SoftDeleteable e campos exclusivos


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.