MySQLのDUPLICATE

例えばユーザーのプロフィール情報を保存しておくuser_profilesテーブルに対して、

・新規登録ならばINSERT

・プロフィール更新ならばUPDATE

するとしよう。

user_profiles

id name intro
1 hoge こんにちは

①登録したいユーザーのデータがuser_profilesに存在するかをみる。

②①が存在していればUPDATE、①が存在していなければINSERTをする。

まぁこれだけですが、プログラムで書くと

とかなる。

これをもっとシンプルにできるのが「ON DUPLICATE KEY UPDATE」です。

これだけで動きます。

ただしこれを使うには、挿入する行に主キーかユニークキーが含まれることが条件です。

重複を許さない主キーかユニークキーに対してINSERTをつかい、主キーかユニークキーが重複してしまうと、勝手にUPDATEが使われるらしいです。

データの有り無し便利ですね。

参考

Pocket

Posted in MySQL.

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">