回答編集履歴

1

追記

2018/01/09 14:13

投稿

sazi
sazi

スコア25138

test CHANGED
@@ -11,3 +11,21 @@
11
11
  insert into テーブル select 値・・・ where not exists(select 1 from テーブル where 一意条件)
12
12
 
13
13
  ```
14
+
15
+
16
+
17
+ 追記
18
+
19
+ ---
20
+
21
+ > なんらかの理由(私がヒアリングした事例だと論理削除をする都合等)で一意制約をつけられない場合
22
+
23
+
24
+
25
+ 例示されているものでは、一意制約が付けられないとは思えませんが、一意制約は付けないとしても、
26
+
27
+ 一意にするための条件についてはパフォーマンスを考慮してインデックスを作成するケースはあるかと思います。
28
+
29
+ 仮に制約条件にNull値が含まれているとしても、Nullを置き換えるようなファンクションインデックスにすれば良いかと思います。
30
+
31
+ 結局のところインデックスを作成することも考え、一意制約を行うことについて再考されてはどうでしょうか。