Mit ON DUPLICATE KEY UPDATE
, können Sie nicht in eine andere Tabelle einfügen - es steht auch keine alternative Funktion zur Verfügung.
Zwei benutzerdefinierte/alternative Möglichkeiten, wie Sie dies erreichen können:
-
Verwenden einer
stored procedure
wie in der akzeptierten Antwort auf diese Frage beschrieben:MySQL ON DUPLICATE KEY in eine Audit- oder Log-Tabelle einfügen -
Einen
trigger
erstellen das jedenINSERT
protokolliert hat für Ihre Tabelle in eine andere Tabelle und Abfragen der Tabelle voller "Protokolle" auf Duplikate.
Etwas Ähnliches sollte funktionieren:
CREATE TABLE insert_logs (
id int not null
);
delimiter |
CREATE TRIGGER insert_logs_trigger BEFORE INSERT ON your_table
FOR EACH ROW BEGIN
INSERT INTO insert_logs SET id = NEW.id;
END;
|
Um eine Liste der Duplikate in der Tabelle zu erhalten, könnten Sie uns:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;