ホームページ >データベース >mysql チュートリアル >MySQL の INSERT ... ON DUPLICATE KEY UPDATE はどのようにして条件付きの挿入と更新を簡素化できるのでしょうか?
MySQL の INSERT ... ON DUPLICATE KEY UPDATE ステートメント: 簡素化された条件付き挿入と更新
MySQL などのリレーショナル データベースを使用する場合、条件付きで挿入または更新操作を実行する必要がある場合があります。これは、レコードが存在しない場合は新しいレコードを作成する必要がある場合、またはレコードが既に存在する場合は更新する必要がある場合に発生します。従来のアプローチでは、SELECT クエリと INSERT クエリまたは UPDATE クエリを組み合わせて使用しますが、複雑で非効率になる可能性があります。
幸いなことに、MySQL は、INSERT ... ON DUPLICATE KEY UPDATE
ステートメントというより洗練されたソリューションを提供します。この多用途コマンドを使用すると、レコードが存在しない場合に行を挿入したり、同じキーを持つ行がテーブル内にすでに存在する場合に行を更新したりすることができます。
文法:
<code class="language-sql">INSERT INTO `table_name` (`column_list`) VALUES (`value_list`) ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
仕組み:
ON DUPLICATE KEY UPDATE
句は、指定された値のどの値でどの列を更新するかを指定します。 例:
次の例を考えてみましょう:
<code class="language-sql">INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1</code>
thing_id
に存在しない主キー値 4815162342 がある場合は、指定された値を使用して usage
テーブルに新しい行を挿入します。 thing_id
の主キー値 4815162342 がすでに存在する場合は、現在の値に 1 を加えて times_used
列を更新します。 利点:
INSERT ... ON DUPLICATE KEY UPDATE
は、単一のクエリを使用して挿入および更新操作を実行するための簡潔かつ明確な方法を提供します。 以上がMySQL の INSERT ... ON DUPLICATE KEY UPDATE はどのようにして条件付きの挿入と更新を簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。