У меня есть таблица PROPERTY_RUNTIME
, имеющая столбцы PROPERTY_NAME
AND PROPERTY_VALUE
таблица PROPERTY_RUNTIME
Я добавляю ограничение для создания значенийCNT_DISP_PREP1
и CNT_DISP_PREP2
не равны 0 одновременно:
ALTER TABLE KLASSX.PROPERTY_RUNTIME
ADD (
CONSTRAINT CK_BOTH_LINE_CLOSE
CHECK (
(
CASE
WHEN
(
((PROPERTY_NAME = 'CNT_DISP_PREP1') AND (PROPERTY_VALUE = '1'))
OR
((PROPERTY_NAME = 'CNT_DISP_PREP2') AND (PROPERTY_VALUE = '1'))
)
THEN 1
ELSE 0
END
) = 1
)
DISABLE NOVALIDATE);
Однако, когда я активирую ограничение, введите четыре комбинации: 1/1, 1/0, 0/1, 0/0, все четыре комбинации нарушают ограничение, а не 0/0.
Поэтому мне интересно, есть ли у меня логическая ошибка в ограничении?
Заранее спасибо!