Mysql
 sql >> Database >  >> RDS >> Mysql

Dottrina 2 @Gedmo\SoftDeleteable e campi univoci

Sai cosa significa "cancellazione graduale"? Significa che ogni operazione di "cancellazione" verrà convertita in SQL che imposta solo alcuni deleted contrassegnare su true . E se inserirai un'altra riga con lo stesso valore del campo univoco che ha una riga eliminata temporaneamente, riceverai questo messaggio.

Hai due modi per risolvere questo problema:

  • Rendi il tuo indice univoco con due colonne:il tuo campo univoco originale e deleted bandiera. Quindi riceverai questo errore solo quando tenti di aggiungere una riga con i valori dei campi univoci esistenti solo per non eliminati temporaneamente.
  • Evita di commettere questa violazione:dovresti escludere la possibilità di aggiungere una riga che ne duplica un'altra in campi univoci.

Il secondo è l'approccio migliore IMHO.