ON DUPLICATE KEY UPDATE
を使用 、別のテーブルに挿入することはできません。また、代替機能を利用することもできません。
これを実現するための2つのカスタム/代替方法:
-
stored procedure
を使用する この質問に対する受け入れられた回答に概説されているように:MySQL ONDUPLICATEKEYを監査またはログテーブルに挿入 -
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;