@cicatrix
было бы большой ошибкой думать

Как сделать избирательную проверку на not null в таблице (check constraint)?

Здравствуйте, коллеги.
Вопрос такой простой: есть таблица, в ней поля FIELD_A, FIELD_B и FIELD_C
Необходимо установить ограничения следующего толка:
должно быть заполнено А и B (NOT NULL), и тогда C должно быть NULL
либо должно быть заполнено C, но тогда оба A и B должны быть NULL
То есть, либо есть C и не должно быть ни A, ни B, либо есть и A, и B (обязательно вместе), но тогда не должно быть C.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 3
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Необходимо установить ограничения
Зависимость значений в картеже является нарушением нормальной формы.
Ответ написан
Комментировать
@cicatrix Автор вопроса
было бы большой ошибкой думать
Вот как-то так, по всей видимости:
...
constraint CHK_nulls check 
(A is null and B is null and C is not null) or
(A is not null and B is not null and C is null)
Ответ написан
Комментировать
@vanyamba-electronics
Я бы сделал так.
В первой таблице - выбор связанной таблицы. Либо таблица 2, либо таблица 3.
В таблице 2 значения A и B, в таблице 3 - значения C.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы