Avec ON DUPLICATE KEY UPDATE
, vous ne pouvez pas insérer dans une autre table - il n'y a pas non plus de fonction alternative disponible.
Vous pouvez y parvenir de deux manières personnalisées/alternatives :
-
Utiliser une
stored procedure
comme indiqué dans la réponse acceptée à cette question :Insérer MySQL ON DUPLICATE KEY dans une table d'audit ou de journal -
Création d'un
trigger
qui a enregistré chaqueINSERT
pour votre table dans une autre table et en interrogeant la table pleine de "journaux" pour tout doublon.
Quelque chose de similaire à ceci devrait fonctionner :
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;
|
Pour obtenir une liste des doublons dans le tableau, vous pouvez :
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;