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 № 1Ein 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.