teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2017/12/13 02:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,4 +2,12 @@
2
2
  deleteしてinsertですよね?
3
3
 
4
4
  メリットがあるとしたら、SQLの記述が簡潔になる場合があるという位?
5
- 実行面ではトランザクション量は多くなるしデメリットの方が多いのではないでしょうか。
5
+ 実行面ではトランザクション量は多くなるしデメリットの方が多いのではないでしょうか。
6
+
7
+ 追記
8
+ ---
9
+ yambejpさんの投稿を見て、replaceの存在を知ったので、調べた内容を追記しておきます。
10
+ replaceはmargeやupsertを実現するためのmysqlの拡張機能ですが、特殊な目的(※)が無い限り「INSERT ON DUPLICATE KEY UPDATE」による本来の`update or insert`で行った方がよさそうですね。
11
+ ※どのような場合にreplaceの方が適しているか思い付かないですが。
12
+
13
+ [裏MySQL入門(17) 基礎編11 REPLACE or INSERT ON DUPLICATE KEY UPDATE](http://d.hatena.ne.jp/IT7C/20100715/1279148768)

1

修正

2017/12/13 02:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,4 +2,4 @@
2
2
  deleteしてinsertですよね?
3
3
 
4
4
  メリットがあるとしたら、SQLの記述が簡潔になる場合があるという位?
5
- 実行面ではアーカイブ量は多くなるしデメリットの方が多いのではないでしょうか。
5
+ 実行面ではトランザクション量は多くなるしデメリットの方が多いのではないでしょうか。