ホームページ >データベース >mysql チュートリアル >重複キーの INSERT と UPDATE: MySQL での競合を処理するには?
重複キーの処理について
データベース テーブルに一意の値を挿入するときに、重複レコードが検出されるシナリオがよく発生します。このような場合、競合の処理方法を決定するオプションがあります。
INSERT IGNORE と INSERT ON DUPLICATE KEY UPDATE
INSERT IGNORE ステートメントは、すべてのエラーを単純に無視します。そして行の挿入を続けます。ただし、予期せぬ結果やデータの不整合が生じる可能性があるため、これはお勧めできません。
代わりに、より適切なオプションは INSERT ON DUPLICATE KEY UPDATE です。これにより、競合が発生した場合の更新アクションを指定できます。あなたの場合、一意のキーがタグフィールドである場合、次の構文を使用できます:
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c') ON DUPLICATE KEY UPDATE tag=tag;
このステートメントは、指定された値を挿入しようとします。いずれかのタグがすでに存在する場合、update 句は単純にタグ値をそれ自体に設定し、重複するタグを事実上無視します。
クエリのテスト
クエリの実行次の出力が表示されます:
Query OK, 0 rows affected (0.07 sec)
これは、重複したタグが無視され、残りの行が正常に処理されたことを確認します。挿入されました。
以上が重複キーの INSERT と UPDATE: MySQL での競合を処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。