sql >> Databasteknik >  >> RDS >> Mysql

Doktrin 2 @Gedmo\SoftDeleteable och unika fält

Vet du vad som betyder "mjuk radering"? Det betyder att varje "delete"-operation kommer att konverteras till SQL som bara ställer in några deleted flagga till true . Och om du kommer att infoga en annan rad med samma värde av unika fält som har mjukt raderade rader får du detta meddelande.

Du har två sätt att lösa detta problem:

  • Gör ditt unika index med två kolumner:ditt ursprungliga unika fält och deleted flagga. Då kommer du att få det här felet endast när du försöker lägga till rad med de befintliga unika fältvärdena endast för inte mjuk borttagna.
  • Undvik att göra denna överträdelse:du bör utesluta möjligheten att lägga till rad som duplicerar en annan i unika fält.

Den andra är den bästa metoden IMHO.



  1. PostgreSQL-behörighetsbeviljande visas inte

  2. Visa en tabell i varje loop med databasvärden

  3. Hur man beräknar median i MySQL

  4. Uppdatera en kolumn i en tabell med att lägga till några värden till samma kolumnvärde i MySQL