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

Doppelte SQL-Einträge verhindern

CREATE UNIQUE INDEX idxname ON tablename (fieldname);

Das Hinzufügen dieses Index stellt sicher, dass keine doppelten Einträge für fieldname vorhanden sind Feld wird in tablename aufgezeichnet Tabelle.

Beim zweiten Client erhalten Sie einen MySQL-Fehler. Sie sollten dies in Ihrem PHP-Code handhaben und das Formular erneut erstellen (anstatt nur die Fehlermeldung anzuzeigen).

Eine andere Möglichkeit (für komplexere Situationen) ist das LOCK Funktionalität. Wenn Sie die Tabelle vor der Überprüfung sperren und dann Ihren Datensatz einfügen, wird eine gleichzeitige Operation (im zweiten Browserfenster) verzögert, bis Sie die Sperren freigeben. Dann ist der Datensatz bereits gespeichert, sodass das zweite PHP-Skript ihn sieht und die Situation handhaben.