Con ON DUPLICATE KEY UPDATE
, non puoi inserire in un'altra tabella, né è disponibile una funzione alternativa.
Due modi personalizzati/alternativi per farlo:
-
Utilizzo di una
stored procedure
come indicato nella risposta accettata a questa domanda:MySQL SU CHIAVE DUPLICATA viene inserito in una tabella di controllo o registro -
Creazione di un
trigger
che ha registrato ogniINSERT
per la tua tabella in un'altra tabella e interrogando la tabella piena di "registri" per eventuali duplicati.
Qualcosa di simile dovrebbe funzionare:
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;
|
Per ottenere un elenco dei duplicati nella tabella, potresti:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;