Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Lehre 2 @Gedmo\SoftDeleteable und eindeutige Felder

Wissen Sie, was "vorläufiges Löschen" bedeutet? Das bedeutet, dass jede "Lösch"-Operation in SQL umgewandelt wird, die nur einige deleted setzt Flag auf true . Und wenn Sie eine weitere Zeile mit demselben Wert des eindeutigen Felds einfügen, die eine vorläufig gelöschte Zeile enthält, erhalten Sie diese Nachricht.

Sie haben zwei Möglichkeiten, dieses Problem zu lösen:

  • Erstellen Sie Ihren eindeutigen Index mit zwei Spalten:Ihrem ursprünglichen eindeutigen Feld und deleted Flagge. Dann erhalten Sie diesen Fehler nur, wenn Sie versuchen, Zeilen mit den vorhandenen eindeutigen Feldwerten nur für nicht vorläufig gelöschte hinzuzufügen.
  • Vermeiden Sie diesen Verstoß:Sie sollten die Möglichkeit ausschließen, Zeilen hinzuzufügen, die eine andere in eindeutigen Feldern duplizieren.

Der zweite ist meiner Meinung nach der beste Ansatz.