MySQL, можно ли запретить двум полям быть NULL или не NULL?
Простая таблица:
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
Можно ли установить такое сложное правило ограничения?
2 ответа:
Вы должны использовать триггеры для создания и обновления событий и trhow исключение, когда условие
(COALESCE(POST_ID, GROUP_ID) IS NULL OR (POST_ID IS NOT NULL AND GROUP_ID IS NOT NULL))
происходитВот ответ на ваш вопрос: любые или ненулевые ограничения в MySQL
Это процедура, немного меняющая синтаксис в зависимости от версии MySql.