INSERT IGNORE
とINSERT ... ON DUPLICATE KEY UPDATE
が存在することを理解します。ただし、重複したキーがある場合は、違反した固有キーの記録を保持するために一時テーブルにINSERT
を実行して、ユーザーに出力できるようにしたいと考えています。MySql - 重複キーの挿入
できることはありますかON DUPLICATE INSERT
?それが役に立ったら、私は一括挿入をしようとしています。
INSERT IGNORE
とINSERT ... ON DUPLICATE KEY UPDATE
が存在することを理解します。ただし、重複したキーがある場合は、違反した固有キーの記録を保持するために一時テーブルにINSERT
を実行して、ユーザーに出力できるようにしたいと考えています。MySql - 重複キーの挿入
できることはありますかON DUPLICATE INSERT
?それが役に立ったら、私は一括挿入をしようとしています。
ON DUPLICATE KEY UPDATE
では、別のテーブルに挿入することはできません。また、代替機能もありません。
2つのカスタム/代替の方法、あなたはこれを達成することができます:
をstored procedure
を使用してこの質問への受け入れ答えに概説されているよう:MySQL ON DUPLICATE KEY insert into an audit or log table
作成してテーブルごとINSERT
を記録しtrigger
別のテーブルにコピーし、重複しているテーブルを「ログ」で完全に照会します。これに似た
何かが動作するはずです:
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;
これは非常に役に立ちます、ありがとう! :) – matt
可能重複の[MySQLのON DUPLICATE KEY監査またはログテーブルに挿入](http://stackoverflow.com/questions/3884344/mysql-on-duplicate-key-insert-into-an-audit-or-log-table) –