Na verdade, você não definir estruturas condicionais na sintaxe DDL. Seu campo pode ser
NULL
ou NOT NULL
- não há terceira opção (e não pode depender de outro campo na estrutura ) Mas você ainda pode emular o comportamento desejado por meio de gatilhos. Você pode interromper
UPDATE
/INSERT
declaração se os dados de entrada forem inválidos em termos de sua lógica. Isso pode ser feito através de: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