SQLでデータを登録する時、既に該当データがあればUPDATE、無ければINSERTしたいということがよくある。こういう場合の対応方法は2つある。
- まずSELECTして存在するかどうか判断し、あればUPDATE、無ければINSERTする
- まずDELETEし、それからINSERTする (該当データが無ければDELETEは空振りに終わる)
で、MySQLならこのDELETE&INSERTを一発でできることを最近知った。
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.4.7 REPLACE 構文
ちょっと便利かも。UPDATE or INSERTだったらもっと良かったのに。さすが無茶するMySQLといったところか。
mysql_affected_rows()で2を返す(DELETE1行+INSERT1行)というのがトリッキーな匂いがしていいね。
0 件のコメント:
コメントを投稿