INSERT IGNORE einfügen 0 Zeilen
Frage
Wenn ich versuche, „INSERT IGNORE ...“ in MYSQL zu laufen nur eine Variable auf eine Tabelle von mehreren Optionen, nach dem ersten Einsatz an, weigert sich, es an die Arbeit. Er sagt: „Eingefügte Zeilen: 0“ und nicht meinen neuen Wert in die Datenbank einfügen. Ich glaube, das liegt daran, dass es bereits einen Eintrag mit einem „Nichts“ Wert ist und MYSQL erlaubt nicht das leere Feld dupliziert werden. Dies scheint ein merkwürdiges Verhalten zu sein (solange die beiden Einsätze sind nicht genau das gleiche), so dass ich mich gefragt, ob es eine Möglichkeit, dies zu vermeiden.
Vielen Dank für jede hep!
Lösung
Die beiden INSERT
müssen nicht genau gleich sein, sie müssen nur die Primärschlüsselspalten die gleiche für sein.
INSERT IGNORE
wird ein Insert ignorieren, wenn es bereits eine Zeile mit dem gleichen Primärschlüssel ist.
Wenn Sie statt INSERT
INSERT IGNORE
haben, wäre ein Fehler bekommen (Primärschlüssel duplizieren).
Wenn Sie wollen, anstatt die vorhandene Zeile aktualisieren, können Sie REPLACE
verwenden.
So oder so, kann es nur eine Zeile für jeden Primärschlüssel sein.