Met ON DUPLICATE KEY UPDATE , kunt u niet invoegen in een andere tabel - er is ook geen alternatieve functie beschikbaar.
Twee aangepaste/alternatieve manieren waarop u dit kunt bereiken:
-
Een
stored proceduregebruiken zoals uiteengezet in het geaccepteerde antwoord op deze vraag:MySQL OP DUPLICATE KEY invoegen in een audit- of logtabel -
Een
triggermaken die elkeINSERT. registreerde voor uw tabel naar een andere tabel en het doorzoeken van de tabel vol met "logs" voor eventuele duplicaten.
Iets soortgelijks als dit zou moeten werken:
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;
|
Om een lijst van de duplicaten in de tabel te krijgen, kunt u ons:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;