MySQL Upsert 操作: 存在する場合は更新、存在しない場合は挿入
質問:
MySQL で、「Upsert」操作、つまり、行が存在しない場合は新しい行を挿入し、行が存在する場合は既存の行を更新する効率的な方法はありますか?
答え:
はい、MySQL はこの機能を実現するための INSERT ... ON DUPLICATE KEY UPDATE
構文を提供します。以下に例を示します:
例:
INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1
手順:
INSERT INTO
句は、指定された値を持つ新しい行を挿入しようとします。 ON DUPLICATE KEY UPDATE
句は、一意のキーの競合が発生した場合 (つまり、同じ thing_id
を持つ行が既に存在する場合) に何が起こるかを定義します。 times_used
列に 1 を追加することで既存の行が更新されます。 利点:
以上がMySQL でアップサートを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。