Faktisk kan du ikke definere betingede strukturer i DDL-syntaks. Dit felt kan enten være NULL
eller IKKE NULL
- der er ingen tredje mulighed (og den kan ikke afhænge af et andet felt i struktur). )
Men du kan stadig efterligne ønsket adfærd via triggere. Du kan afbryde OPDATERING
/INDSÆT erklæring, hvis indgående data er ugyldige i forhold til din logik. Det kan gøres via:
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