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

Doktrin 2 @Gedmo\SoftSletbare og unikke felter

Ved du hvad betyder "blød sletning"? Det betyder, at hver "delete"-handling vil blive konverteret til SQL, der kun indstiller nogle deleted flag til true . Og hvis du vil indsætte en anden række med den samme værdi af unikke felter, som har en blød slettet række, får du denne besked.

Du har to måder at løse dette problem på:

  • Lav dit unikke indeks med to kolonner:dit oprindelige unikke felt og deleted flag. Så vil du kun få denne fejl, når du forsøger at tilføje række med de eksisterende unikke felter værdier kun for ikke blødt slettet.
  • Undgå at foretage denne overtrædelse:Du bør udelukke muligheden for at tilføje række, der dublerer en anden i unikke felter.

Den anden er den bedste tilgang IMHO.



  1. Ændre skema for flere PostgreSQL-funktioner i én operation?

  2. valg af tabelsortering for universelle tegn

  3. Sætte MySQL-database under versionskontrol?

  4. Opdater understreng af en kolonne