回答編集履歴

2

追記

2018/02/14 04:37

投稿

sazi
sazi

スコア25195

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

1

追記

2018/02/14 04:37

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  from dual
18
18
 
19
- where not exists(select 1 from テーブル where X = [条件(+1したもの)])
19
+ where not exists(select 1 from テーブル where X = (select X + 1 from テーブル where XXXX))
20
20
 
21
21
  ```
22
+
23
+ +1を求める部分はcte(with)を使用すれば簡潔になるかと。