sql >> Database >  >> RDS >> Mysql

Leer 2 @Gedmo\SoftVerwijderbare en unieke velden

Weet je wat 'zacht verwijderen' betekent? Het betekent dat elke "verwijder"-bewerking wordt geconverteerd naar SQL die slechts enkele deleted markeer naar true . En als u een andere rij invoegt met dezelfde waarde van een uniek veld met een zacht verwijderde rij, krijgt u dit bericht.

U kunt dit probleem op twee manieren oplossen:

  • Maak uw unieke index met twee kolommen:uw originele unieke veld en deleted vlag. Dan krijgt u deze foutmelding alleen wanneer u een rij probeert toe te voegen met de bestaande unieke veldwaarden alleen voor niet zacht verwijderd.
  • Vermijd deze overtreding:u moet de mogelijkheid uitsluiten om een ​​rij toe te voegen die een andere dupliceert in unieke velden.

De tweede is de beste aanpak IMHO.



  1. Herstelapparaat zonder gegevensverlies

  2. Sorteer de $_POST variabelen

  3. Syntaxis alle opgeslagen procedures controleren?

  4. MySQL-weigeringsparameter