Уникальное ограничение Oracle на основе значения столбца

У меня есть следующее уникальное ограничение

dup_Checklist_QNum UNIQUE (QUESTION_NO, IS_ACTIVE)

Я пытаюсь предотвратить два вопроса с одинаковым номером вопроса, будучи активным (IS _ACTIVE value = 1 ).

Все казалось прекрасным, пока мне не пришлось пересматривать вопрос во второй раз.

QUESTION_NO=1, TEXT="Have you..", REV=1, IS_ACTIVE=0  
QUESTION_NO=1, TEXT="Have you..", REV=2, IS_ACTIVE=0  <-- This should be ok but constraint was violated
QUESTION_NO=1, TEXT="Have you..", REV=3, IS_ACTIVE=1
QUESTION_NO=1, TEXT="Have you..", REV=3, IS_ACTIVE=1 <-- This should be throw constraint exception 

Мне нужно, чтобы ограничение применялось только тогда, когда IS _ACTIVE=1

6
задан jeff 26 July 2018 в 11:06
поделиться