MySQL で一意のキー制約を使用して挿入または更新する
重複キー制約に対処する必要がある場合、MySQL テーブルでの行の挿入または更新は難しい場合があります。この問題を解決するために、MySQL は汎用性の高い「INSERT ... ON DUPLICATE KEY UPDATE」ステートメントを提供します。
質問に記載されているように、一意のキーを使用してテーブルに行を挿入したいと考えています。ただし、同じ一意のキーを持つ行がすでに存在する場合は、その値を更新する必要があります。
従来、行を挿入すると一意キー制約に違反し、エラー メッセージが表示されました。 「INSERT IGNORE」はエラーを抑制しますが、更新操作は実行しません。
解決策: INSERT ... ON DUPLICATE KEY UPDATE
解決策は、「INSERT ... ON DUPLICATE KEY UPDATE」構文を使用することです。提供されている例を使用して、このクエリを分解してみましょう:
<code class="language-sql">INSERT INTO table_name (ID, NAME, AGE) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE NAME="A", AGE=19</code>
手順:
ID=1 の行がテーブルに存在しない場合は、指定された値を使用して新しい行が挿入されます。ただし、ID=1 の行がすでに存在する場合は、「NAME」列と「AGE」列のみが指定された値で更新され、「ID」は変更されません。
以上がMySQL で挿入または更新するときに一意のキー制約を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。