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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top