दरअसल, आप नहीं . कर सकते हैं डीडीएल सिंटैक्स में सशर्त संरचनाओं को परिभाषित करें। आपका फ़ील्ड NULL
. हो सकता है या NOT NULL
- कोई तीसरा विकल्प नहीं है (और यह संरचना में . किसी अन्य फ़ील्ड पर निर्भर नहीं हो सकता है )
लेकिन आप अभी भी ट्रिगर्स के माध्यम से वांछित व्यवहार का अनुकरण कर सकते हैं। आप UPDATE
को बाधित कर सकते हैं /INSERT
कथन यदि आने वाला डेटा आपके तर्क के संदर्भ में अमान्य है। इसके द्वारा किया जा सकता है:
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