ホームページ > データベース > mysql チュートリアル > MySQL で挿入または更新するときに一意のキー制約を処理するにはどうすればよいですか?

MySQL で挿入または更新するときに一意のキー制約を処理するにはどうすればよいですか?

DDD
リリース: 2025-01-24 02:52:09
オリジナル
830 人が閲覧しました

How to Handle Unique Key Constraints When Inserting or Updating in MySQL?

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>
ログイン後にコピー
  • INSERT INTO: 重複キーが存在しない場合は、指定されたテーブル ("table_name") に新しい行を挿入します。
  • (ID, NAME, AGE): 新しい行に入力する列を指定します。
  • VALUES(1, "A", 19): 挿入する値を提供します。
  • 重複キーの更新時: キー部分。一意のキー (この場合は「ID」) に同じ値を持つ行がテーブル内にすでに存在する場合、更新操作がトリガーされます。
  • NAME="A", AGE=19: 更新するフィールドとその新しい値を指定します。

手順:

ID=1 の行がテーブルに存在しない場合は、指定された値を使用して新しい行が挿入されます。ただし、ID=1 の行がすでに存在する場合は、「NAME」列と「AGE」列のみが指定された値で更新され、「ID」は変更されません。

以上がMySQL で挿入または更新するときに一意のキー制約を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート