Я использую Oracle 10g и хочу применить ограничение к таблице, в которой значение, введенное для одного столбца, определяет, является ли другой столбец NULL или NOT NULL.Столбец1 может содержать только 1 или 0;Столбец2 - это VARCHAR2 (255).
Я знаю, что работает следующее:
CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NULL));
Однако мне было интересно, возможно ли использовать CASE для выполнения этого ограничения и установить атрибут NOTNULL на col2 или CASE можно использовать только для определения значений?то есть может что-то вроде этой работы:
CONSTRAINT ck_1 CHECK (CASE WHEN col1=1 THEN col2 IS NOT NULL ELSE col2 IS NULL END);