Heim >Datenbank >MySQL-Tutorial >Wie kann ich doppelte Einträge in MySQL durch eindeutige Indizes und unterschiedliche Handhabungsmethoden verhindern?
Doppelte Einträge in MySQL mit phpMyAdmin vermeiden
Das Einfügen von Daten in eine Tabelle sollte sorgfältig verwaltet werden, um Duplikate zu verhindern, die die Datenintegrität beeinträchtigen können. In MySQL ist dies besonders bei großen Datensätzen von entscheidender Bedeutung. Ein Ansatz zur Vermeidung von Duplikaten ist die Verwendung eindeutiger Indizes.
Erstellen eines eindeutigen Index
Bevor Vermeidungsmaßnahmen implementiert werden, ist es wichtig, einen eindeutigen Index in der Tabelle einzurichten . Dadurch wird sichergestellt, dass die Kombination bestimmter Spalten (in diesem Fall Seiten-ID und Name) nicht wiederholt werden kann. Führen Sie dazu die folgende Abfrage aus:
ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);
Handhabung doppelter Szenarien
Nachdem der eindeutige Index vorhanden ist, besteht der nächste Schritt darin, zu entscheiden, wie mit Duplikaten umgegangen werden soll Einträge. Hier sind drei gängige Optionen:
INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
Diese Methode verwirft alle doppelten Zeilen und fährt mit dem Einfügen nur der eindeutigen fort .
INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "first") ON DUPLICATE KEY UPDATE (somefield = 'first'); INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "second") ON DUPLICATE KEY UPDATE (somefield = 'second');
Mit ON DUPLICATE KEY UPDATE werden doppelte Zeilen mit den bereitgestellten Werten aktualisiert. Beachten Sie, dass der Wert eines Felds je nach Einfügereihenfolge entweder „erster“ oder „zweiter“ ist.
INSERT INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo") ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1);
Diese Methode verwaltet die Anzahl der Vorkommen für jede eindeutige Kombination aus Seiten-ID und Name. Mit jedem doppelten Eintrag wird das Seitenzahlfeld erhöht.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Einträge in MySQL durch eindeutige Indizes und unterschiedliche Handhabungsmethoden verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!