主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 google friend connect を使ってください。

REPLACE INTO と INSERT ON DUPLICATE KEY UPDATE の違い

この二つ、用途はほとんど同じで、「レコードが存在していれば更新、なければ追加」っていうことなんだけど、
実は更新を行う処理は少し違う。

REPLACE INTO は名のごとくレコードを置き換える。
プライマリキーを検索ユニーク条件として更新処理を行う際には素直に UPDATE すしてくれるが、
プライマリキー以外のユニークキーを条件にして更新する場合は、 DELETE して INSERT する。そのためプライマリキーをオートインクリメントなどにしてあると、新しい ID が振られてしまいえらいことになる。

これに対して INSERT ON DUPLICATE KEY UPDATE は素直に UPDATE のみを行うの。

用途に合わせて使い分ければどちらも便利。ただ、どちらも MySQL の拡張機能です。

最終更新日 2009-06-27 05:16:05
>> 記事の編集 >> ラベルの変更
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank4, rank6, rank7, rank8, rank9, rank10, rank11
todo メモ
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5