INSERT IGNORE
とが存在することを理解していますINSERT ... ON DUPLICATE KEY UPDATE
。ただし、重複キーがある場合は、INSERT
侵害された一意のキーの記録を保持するために一時テーブルに対して a を実行して、ユーザーに出力できるようにしたいと考えています。
私ができる方法はありますON DUPLICATE INSERT
か?それが役立つ場合は、一括挿入を試みています。
INSERT IGNORE
とが存在することを理解していますINSERT ... ON DUPLICATE KEY UPDATE
。ただし、重複キーがある場合は、INSERT
侵害された一意のキーの記録を保持するために一時テーブルに対して a を実行して、ユーザーに出力できるようにしたいと考えています。
私ができる方法はありますON DUPLICATE INSERT
か?それが役立つ場合は、一括挿入を試みています。
ではON DUPLICATE KEY UPDATE
、別のテーブルに挿入することはできません。また、使用できる代替機能もありません。
これを実現できる 2 つのカスタム/代替方法:
stored procedure
この質問に対する受け入れられた回答で概説されているように使用: MySQL ON DUPLICATE KEY insert into an audit or log table
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;