Всъщност можете дане дефинирайте условни структури в DDL синтаксис. Вашето поле може да бъде или NULL
или NOT NULL
- няма трета опция (и тя не може да зависи от друго поле в структура )
Но все пак можете да емулирате желаното поведение чрез тригери. Можете да прекъснете UPDATE
/INSERT
изявление, ако входящите данни са невалидни от гледна точка на вашата логика. Това може да стане чрез:
CREATE TRIGGER `bannedOnCheck`
BEFORE INSERT ON `fa_ranking_system`.`Player`
FOR EACH ROW
BEGIN
IF(new.IsBanned && new.BannedOn IS NULL) THEN
SIGNAL 'Integrity check failed: can not set banned without ban date'
END IF
END