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