こんにちは。開発チームのワイルド担当、まんだいです。 今回は、普段何気なく使っている(かも知れない)REPLACE句について、細かい挙動を追いかけてみたいと思います。 データ更新、どうしてますか? 弊社では、システム開発においてMySQLを主なRDBMSとして利用しています。 通常、ユニーク制約があるテーブルへの更新処理の際には SELECTして重複チェックを行った上でINSERTするかUPDATEするか分岐させる INSERTしてみてDuplicateしたら例外をキャッチしてUPDATE処理に回すワイルド更新 の二択を迫られると思いますが、実は(でもなんでもないですが)REPLACE句による更新処理も存在します。 このREPLACE句ですが、単に字面の通り、置き換える(= REPLACE)すると思って実行すると、データの不整合が発生して思わぬ事態を招くやも知れません。 簡単な例で、その挙
![そ、そのクエリ、大丈夫? 知らないと損するREPLACE句の挙動 | 株式会社ビヨンド](https://cdn-ak-scissors.b.st-hatena.com/image/square/814a338ef91cd8d3b0ef94a880f5ad1d1d0a0973/height=288;version=1;width=512/https%3A%2F%2Fbeyondjapan.com%2Fcms%2Fwp-content%2Fuploads%2F2016%2F01%2Fwow-1.png)