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

回答編集履歴

2

追記

2018/02/14 04:37

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,4 @@
1
- 重複させないことは、即ちUPSERTと考えれば良いかと思いますので、
1
+ 重複させないことは、即ちUPSERTでupdateが無いものと考えれば良いかと思いますので、
2
2
  selectとinsertを同時に行って、重複を発生させないようにするのはどうでしょう。
3
3
  ※シリアライザブルであればですが。
4
4
 

1

追記

2018/02/14 04:37

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -7,5 +7,6 @@
7
7
  select (select X + 1 from テーブル where XXXX)--+1の編集
8
8
     ~ -- valueの代わりに項目列挙
9
9
  from dual
10
- where not exists(select 1 from テーブル where X = [条件(+1したもの)])
10
+ where not exists(select 1 from テーブル where X = (select X + 1 from テーブル where XXXX))
11
- ```
11
+ ```
12
+ +1を求める部分はcte(with)を使用すれば簡潔になるかと。