Sebenarnya, Anda tidak mendefinisikan struktur bersyarat dalam sintaks DDL. Bidang Anda dapat berupa NULL atau NOT NULL - tidak ada opsi ketiga (dan tidak dapat bergantung pada bidang lain dalam struktur )
Tetapi Anda masih dapat meniru perilaku yang diinginkan melalui pemicu. Anda dapat menginterupsi UPDATE /INSERT pernyataan jika data yang masuk tidak valid dalam hal logika Anda. Itu bisa dilakukan melalui:
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