MySQL में, प्रत्येक कॉलम प्रकार में एक "अंतर्निहित डिफ़ॉल्ट "मान ।
अगर एक NOT NULL कॉलम टेबल में जोड़ा जाता है , और कोई स्पष्ट डिफ़ॉल्ट निर्दिष्ट नहीं है, नए कॉलम डेटा को पॉप्युलेट करने के लिए निहित डिफ़ॉल्ट मान का उपयोग किया जाता है। डिफ़ॉल्ट मान निर्दिष्ट होने पर समान नियम लागू होते हैं।
जैसे, मूल डीडीएल वही परिणाम देता है:
-- After this, data will be the same, but schema has an EXPLICIT DEFAULT
ALTER TABLE t ADD c varchar(10) NOT NULL DEFAULT ''
-- Now we're back to the IMPLICIT DEFAULT (MySQL stores NULL internally)
ALTER TABLE t ALTER c DROP DEFAULT
"सख्त" मोड सेटिंग डिफ़ॉल्ट मानों पर निर्भर DML कथनों को प्रभावित करती है, लेकिन स्तंभ जोड़े जाने पर अंतर्निहित डिफ़ॉल्ट उपयोग को प्रभावित नहीं करती है।
यह रहा एक sqlfiddle "प्रूफ" वह सख्त मोड ALTER TABLE .. ADD स्टेटमेंट पर लागू नहीं होता है।
यह एक MySQL सुविधा है। अन्य इंजन, जैसे SQL सर्वर, को ऐसे स्कीमा परिवर्तनों के लिए एक स्पष्ट DEFAULT (या NULL कॉलम) बाधा की आवश्यकता होती है।