Heim > Artikel > Backend-Entwicklung > MySQL-Einfügungsproblem
Zwei Benutzer fügen gleichzeitig ein Datenelement ein,
in den Tabellensatz name='tom',num=2 einfügen
in den Tabellensatz name='jack',num=2 einfügen
, aber die Geschäftslogik Die Duplizierung von Num-Werten ist nicht zulässig.
Wie kann MySQL daran gehindert werden, doppelte Daten einzufügen?
1. Fügen Sie einen gemeinsamen eindeutigen Index hinzu, aber das Programm meldet einen Fehler, der nicht durchführbar erscheint.
Gibt es eine andere Methode?
Zwei Benutzer fügen gleichzeitig ein Datenelement ein,
in den Tabellensatz name='tom',num=2 einfügen
in den Tabellensatz name='jack',num=2 einfügen
, aber die Geschäftslogik Die Duplizierung von Num-Werten ist nicht zulässig.
Wie kann MySQL daran gehindert werden, doppelte Daten einzufügen?
1. Fügen Sie einen gemeinsamen eindeutigen Index hinzu, aber das Programm meldet einen Fehler, der nicht durchführbar erscheint.
Gibt es eine andere Methode?
Verwenden Sie einen eindeutigen Index, verwenden Sie die Transaktionsverarbeitung im Einfügungsszenario und lösen Sie eine Transaktionserinnerung aus, wenn ein doppelter Wert vorhanden ist.
Programmfehler?
Sie müssen nur die entsprechende Ausnahme abfangen, sie dann zurückgeben und eine geschäftliche Erklärung abgeben.
insert ignore
Auf keinen Fall
Das bedeutet, dass Sie vor jedem Einfügen prüfen müssen, ob ein Wert in das Num-Feld der Tabelle eingefügt werden muss. Außerdem müssen Sie die Parallelität berücksichtigen. Rechts? Verwenden Sie entweder MySQL-Transaktionen oder den MySQL-Sperrtabellenmechanismus
Es wird empfohlen, dass die Datenbank über einen eigenen Überprüfungsmechanismus verfügt, genau wie Ihre eindeutige Einschränkung oder Ihr Index. Die Anwendung kann die Fehlerinformationen der Datenbank erfassen und entsprechende Erklärungen bereitstellen.