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 procedure
gebruiken zoals uiteengezet in het geaccepteerde antwoord op deze vraag:MySQL OP DUPLICATE KEY invoegen in een audit- of logtabel -
Een
trigger
maken 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;