MySQL, можно ли запретить два поля быть NULL или NOT NULL? [closed]

простая таблица:

ID, NAME, POST_ID, GROUP_ID

либо POST_ID, либо GROUP_ID должны быть установлены, но ни в коем случае не оба, НИ НИ ОДИН из них. Итак,

есть допустимые случаи:

ID, NAME, POST_ID, GROUP_ID
x,   y,   1,       NULL
x,   y,   NULL,    4

и НЕ ДЕЙСТВИТЕЛЬНЫЕ случаи:

ID, NAME, POST_ID, GROUP_ID
x,   y,   NULL,    NULL
x,   y,   4,       4

можно ли установить такое сложное правило ограничения?

0
задан 30 August 2018 в 15:20
1 ответ

Я не думаю, что это возможно. Я бы такие случаи отлавливал в интерфейсе, где пользователь вводит данные. Кроме того, вы, возможно, можете заменить оба поля двумя другими полями:

категория поле типа перечисление с возможными значениями 'post' или 'group' Поле ссылки , содержащее идентификатор.

Таким образом, вы можете легко потребовать, чтобы оба значения были непустыми, и вы можете ссылаться только на идентификатор сообщения или идентификатор группы.

1
ответ дан 4 December 2019 в 15:51

Теги

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