このフィールドの「タグ」など、特定のフィールドに UNIQUE 制約を適用するテーブルにデータを挿入しようとすると、この場合、重複した値が発生するとエラーが発生する可能性があります。この質問では、重複の無視に特に焦点を当てて、このような状況に対処する方法を検討します。
提供された最初の例は、重複タグを無視することを目的として、「table_tags」テーブルに複数の値を挿入しようとする試みを示しています。ただし、「INSERT INTO ... ON DUPLICATE KEY IGNORE」の使用は、重複キー違反だけでなくすべてのエラーを無視する可能性があるため、推奨されません。
代わりに、「INSERT」を使用することをお勧めします。 INTO ... 重複キー更新時 tag=tag;"構文。このアプローチを使用すると、重複キー違反が発生した場合に何が起こるかを明示的に指定できます。この場合は、既存のレコードを同じ値で更新するだけです。
この構文を使用すると、重複キーが無視されなくなりますが、むしろ、既存の値が維持されます。重複キーは事実上無視されますが、クエリではエラーが発生せず、予想どおり「クエリ OK、影響を受ける行は 0 行」となります。
以上がMySQL INSERT ステートメントで重複キーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。