Eigentlich können Sie das nicht bedingte Strukturen in DDL-Syntax definieren. Ihr Feld kann entweder NULL
sein oder NOT NULL
- Es gibt keine dritte Option (und sie kann nicht von einem anderen Feld in der Struktur abhängen )
Aber Sie können immer noch das gewünschte Verhalten über Trigger emulieren. Sie können UPDATE
unterbrechen /INSERT
Anweisung, wenn eingehende Daten im Sinne Ihrer Logik ungültig sind. Das geht über:
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