डिफ़ॉल्ट रूप से, MySQL अमान्य मान स्वीकार करता है। मान्य मानों को बाध्य करने के लिए आप MySQL को सख्त मोड में सेट कर सकते हैं। यह उस क्वेरी को अस्वीकार कर देगा जो NOT NULL कॉलम के लिए मान प्रदान नहीं करती है और साथ ही सभी प्रकार के कॉलम पर अखंडता लागू करती है।
अपडेट करें: MySQL 5.7 और इसके बाद के संस्करण में अब डिफ़ॉल्ट रूप से सख्त मोड है। इसलिए यह पिछले संस्करणों की तरह डिफ़ॉल्ट रूप से अमान्य मान स्वीकार नहीं करेगा।
https://dev.mysql .com/doc/refman/5.0/hi/sql-mode.html#sql-mode-important
https://dev.mysql.com/doc /refman/5.0/hi/sql-mode.html#sqlmode_strict_all_tables
संपादित करें:@ बररंका और @ रॉकेट हज़मत ने टिप्पणियों में अच्छे अंक बनाए। '' अशक्त के समान नहीं है, इसलिए MySQL इसे NOT NULL कॉलम में अनुमति देगा। उस स्थिति में, आपको अपने कोड या ट्रिगर का सहारा लेना होगा।
कोड में (उदाहरण के लिए PHP), यह काफी आसान हो सकता है, कुछ इस तरह चल रहा है:
if (!strlen($value)) {
// Exclude value or use NULL in query
}