S ON DUPLICATE KEY UPDATE
, nemůžete vložit do jiné tabulky - ani není k dispozici alternativní funkce.
Dva vlastní/alternativní způsoby, jak toho dosáhnout:
-
Pomocí
stored procedure
jak je uvedeno v přijaté odpovědi na tuto otázku:MySQL ON DUPLICATE KEY vložení do tabulky auditu nebo protokolu -
Vytvoření
trigger
který zaznamenal každýINSERT
pro vaši tabulku do jiné tabulky a dotazování tabulky plné "protokolů" na případné duplikáty.
Něco podobného by mělo fungovat:
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;
|
Chcete-li získat seznam duplikátů v tabulce, můžete nám:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;