Med ON DUPLICATE KEY UPDATE
, kan du inte infoga i en annan tabell - och det finns inte heller någon alternativ funktion tillgänglig.
Två anpassade/alternativa sätt du kan åstadkomma detta:
-
Med en
stored procedure
som beskrivs i det accepterade svaret på denna fråga:MySQL PÅ DUBLIKATNYCKEL infogas i en gransknings- eller loggtabell -
Skapa en
trigger
som loggade varjeINSERT
för din tabell till en annan tabell och fråga tabellen full av "loggar" för eventuella dubbletter.
Något liknande detta borde fungera:
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;
|
För att få en lista över dubbletter i tabellen kan du:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;