Con ON DUPLICATE KEY UPDATE
, no puede insertar en otra tabla, ni hay una función alternativa disponible.
Dos formas personalizadas/alternativas de lograr esto:
-
Usando un
stored procedure
como se describe en la respuesta aceptada a esta pregunta:MySQL ON DUPLICATE KEY insertar en una auditoría o tabla de registro -
Creando un
trigger
que registró cadaINSERT
para su tabla en otra tabla y consultando la tabla llena de "registros" en busca de duplicados.
Algo similar a esto debería funcionar:
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;
|
Para obtener una lista de los duplicados en la tabla, podría:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;