レコードが存在していれば更新、なければ追加の実現方法

MySQLには便利な拡張がある。
それは「REPLACE INTO」と「INSERT ON DUPLICATE KEY UPDATE」
ただし、更新の挙動が違うので説明。
■REPLACE INTO
その名の通り置き換えなので、
レコードがあったら、DELETEしてからINSERTを自動的にやってくれる。
ここで注意したいのはUPDATEではない点。
autoincrementを設定しているレコードだと、勝手にインクリメントされちゃう。
厳密にいうと更新じゃない。
■INSERT ON DUPLICATE KEY UPDATE
タイトルの挙動を実現するにはこちらの方が適切か。
レコードがあったら、UPDATEしてくれる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です