Heim >Backend-Entwicklung >PHP-Tutorial >MySQL-Einfügungsproblem

MySQL-Einfügungsproblem

WBOY
WBOYOriginal
2016-08-20 09:04:001044Durchsuche

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?

Antwortinhalt:

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 ignoreAuf 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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn