Med ON DUPLICATE KEY UPDATE
, kan du ikke indsætte i en anden tabel - og der er heller ikke en alternativ funktion tilgængelig.
To brugerdefinerede/alternative måder du kan opnå dette på:
-
Brug af en
stored procedure
som beskrevet i det accepterede svar på dette spørgsmål:MySQL PÅ DUBLIKAT NØGLE indsættes i en revisions- eller logtabel -
Oprettelse af en
trigger
der loggede hverINSERT
for din tabel til en anden tabel og forespørge tabellen fuld af "logfiler" for eventuelle dubletter.
Noget lignende dette burde virke:
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;
|
For at få en liste over dubletterne i tabellen kan du:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;