С ON DUPLICATE KEY UPDATE
, не можете да вмъкнете в друга таблица - нито пък има алтернативна функция.
Два персонализирани/алтернативни начина, по които можете да постигнете това:
-
Използване на
stored procedure
както е посочено в приетия отговор на този въпрос:MySQL НА ДВУЛИРАТ КЛЮЧ вмъкване в таблица за одит или журнал -
Създаване на
trigger
който регистрира всекиINSERT
за вашата таблица в друга таблица и запитване на таблицата, пълна с „регистрационни файлове“ за дубликати.
Нещо подобно на това трябва да работи:
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;
|
За да получите списък на дубликатите в таблицата, можете да ни:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;