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.