2016-07-29 26 views
0

Gibt es einen Leistungsunterschied zwischen der Verwendung von Unique Constraint und Trigger, um doppelte Zeilen in MySQL zu verhindern?MySQL Constraint/Trigger um doppelte Zeilen zu vermeiden?

+1

Die erste Frage sollte lauten: Was möchten Sie im Trigger tun, die mit UNIQUE Constraint nicht erreicht werden konnte. Wenn die Antwort "nichts" ist, gehen Sie für die UNIQUE-Einschränkung. Wenn die Antwort anders ist, sagen Sie uns, was Sie erreichen wollen. –

Antwort

0

Überwachen Sie es. Aber gut, das Ergebnis sollte offensichtlich sein.

Da der eindeutige Index speziell zur Durchsetzung dieser Einschränkung existiert, sollte er die erste Wahl sein.

Mit dem Trigger müssten Sie zusätzliche Operationen ausführen, um sogar zu prüfen, ob das Dataset vorhanden ist (Tabellensuche oder Indexsuche, oder Sie setzen einen Index ohne Einschränkung für die Spalte, aber ...), und reagieren entsprechend darauf . Wenn Sie also nichts anderes versuchen (Protokollierung des fehlgeschlagenen Versuchs), wären dies unnötige Schritte.