Dengan ON DUPLICATE KEY UPDATE
, Anda tidak dapat menyisipkan ke tabel lain - juga tidak ada fungsi alternatif yang tersedia.
Dua cara khusus/alternatif yang dapat Anda lakukan:
-
Menggunakan
stored procedure
sebagaimana diuraikan dalam jawaban yang diterima untuk pertanyaan ini:MySQL ON DUPLICATE KEY masukkan ke dalam audit atau tabel log -
Membuat
trigger
yang mencatat setiapINSERT
untuk tabel Anda ke tabel lain dan kueri tabel yang penuh dengan "log" untuk duplikat apa pun.
Sesuatu yang mirip dengan ini seharusnya berfungsi:
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;
|
Untuk mendapatkan daftar duplikat dalam tabel, Anda dapat kami:
SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;