/ / Welcher Datensatz hat INSERT IGNORE dazu gebracht, nicht einzufügen? - MySQL, SQL, Datenbank

Welcher Datensatz hat dazu geführt, dass INSERT IGNORE nicht eingefügt wurde? - MySQL, SQL, Datenbank

Ist es in MySQL möglich, die Zeile, die dazu geführt hat, dass INSERT IGNORE "fehlschlägt", wenn ein INSERT IGNORE nichts einfügt?

Antworten:

2 für die Antwort № 1

Ein anderer und korrekterer Ansatz ist zu verwenden LAST_INSERT_ID () im ON DUPLICATE KEY UPDATE

Das soll sich ändern:

INSERT IGNORE INTO the_table (id) VALUES (1);

Zu:

INSERT INTO the_table (id) VALUES (1)
ON DUPLICATE KEY UPDATE
id = LAST_INSERT_ID(id);

Dies nimmt keine Änderungen an der Tabelle vor, aber der folgende Aufruf von LAST_INSERT_ID () gibt entweder die ID des neu eingefügten Elements oder das letzte Ergebnis zurück, das explizit an die Funktion übergeben wurde.


0 für die Antwort № 2

Sie können dies erreichen, indem Sie ein Feld hinzufügen, das Sie als Flag verwenden können, und dann hinzufügen ON DUPLICATE KEY UPDATE dup = dup+1 (oder ähnlich) zu Ihrer Anfrage.