こんにちは。開発チームのワイルド担当、まんだいです。 今回は、普段何気なく使っている(かも知れない)REPLACE句について、細かい挙動を追いかけてみたいと思います。 データ更新、どうしてますか? 弊社では、システム開発においてMySQLを主なRDBMSとして利用しています。 通常、ユニーク制約があるテーブルへの更新処理の際には SELECTして重複チェックを行った上でINSERTするかUPDATEするか分岐させる INSERTしてみてDuplicateしたら例外をキャッチしてUPDATE処理に回すワイルド更新 の二択を迫られると思いますが、実は(でもなんでもないですが)REPLACE句による更新処理も存在します。 このREPLACE句ですが、単に字面の通り、置き換える(= REPLACE)すると思って実行すると、データの不整合が発生して思わぬ事態を招くやも知れません。 簡単な例で、その挙