dedlfix: mysql insert ignore into... Rückgabewert doppelte?

Beitrag lesen

Tach!

Erster Satz = Warnungen
Dritter Satz = Doch keine Warnung?

"Wenn Sie das Schlüsselwort IGNORE angeben, werden Fehler, die während der Ausführung der INSERT-Anweisung auftreten, als Warnungen behandelt.

Das heißt also, dass du Warnungen ausgeben lassen kannst. Das kann man mit der mysql-Extension meines Wissens nach nur über ein SQL-Statement, die mysqli-Extension hat hingegen was entsprechendes eingebaut.

So würde beispielsweise ohne IGNORE ein Datensatz, der einen vorhandenen eindeutigen Index oder einen Primärschlüsselwert in der Tabelle dupliziert, einen Dublettenfehler verursachen, woraufhin die Anweisung abgebrochen würde. Bei IGNORE wird der Datensatz zwar auch nicht eingefügt, aber es wird kein Fehler ausgegeben.

Da wäre jetzt der dritte Satz mit dabei, aber da steht nichts gegenteiliges.

Und dann wäre da noch das englische Original, bei dem noch ein Satz mehr drinsteht (wieder eine Bestätigung dafür, Übersetzungen links liegen zu lassen): "Ignored errors may generate warnings instead, although duplicate-key errors do not." Das dürfte dann der ausschlaggebende Hinweis sein, dein Vorhaben nicht mit IGNORE umsetzen zu können.

Bei Fehler auslösenden Datenkonvertierungen [...]

Trifft nicht für deinen Dubletten-Fall zu.

Wie ist das überhaupt mit Rückgabewerten(Warnungen/Hinweise)? Ich sehe die ja niemals nach einem Insert, wenn alles OK ist. Ist da trotzdem eine Möglichkeit diese zu sehen?

Ja, siehe oben, Warnungen explizit abfragen.

dedlfix.