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

回答編集履歴

1

追記

2018/01/09 14:13

投稿

sazi
sazi

スコア25430

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