Один из столбцов между двумя столбцами должен быть NOT NULL. Как обеспечить его соблюдение в схеме?

У меня есть таблица со следующей схемой

CREATE TABLE MyTable  
(  
    ID                INTEGER DEFAULT(1,1),      
    FirstIdentifier   INTEGER NULL,    
    SecondIdentifier  INTEGER NULL,  
  --.... some other fields .....    
)   

Теперь при вставке значения один из столбцов между FirstIdentifier и SecondIdentifier должен быть НЕ НОЛЬ. Есть ли способ обеспечить его использование по схеме?

Ответы

Ответ 1

Это возможно при использовании ограничения CHECK:

CHECK (FirstIdentifier IS NOT NULL OR SecondIdentifier IS NOT NULL)

В то время как ограничения CHECK являются частью таблицы (и, следовательно, "схемы"?), они могут не соответствовать требуемому определению. Вышеуказанный CHECK не является взаимоисключающим, но он может быть изменен таким образом.

Счастливое кодирование.