MySQL NOT NULL कंस्ट्रेंट किसी कॉलम को NULL मान स्वीकार करने से रोकता है। एक बार लागू होने पर, उस कॉलम में NULL पास नहीं किया जा सकता। यह कॉलम-लेवल कंस्ट्रेंट है - पूरे टेबल पर लागू नहीं होता।
टेबल बनाते समय NOT NULL घोषित करना
CREATE TABLE स्टेटमेंट में कॉलम परिभाषा के साथ NOT NULL कीवर्ड उपयोग करें:
mysql> CREATE TABLE Employee(
ID INT NOT NULL,
First_Name VARCHAR(20),
Last_Name VARCHAR(20),
Designation VARCHAR(15)
);
Query OK, 0 rows affected (0.59 sec)
वेरिफिकेशन
mysql> DESCRIBE Employee; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | ID | int(11) | NO | | NULL | | | First_Name | varchar(20) | YES | | NULL | | | Last_Name | varchar(20) | YES | | NULL | | | Designation | varchar(15) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+
परिणाम विश्लेषण
IDकॉलम: Null = NO → NOT NULL कंस्ट्रेंट सक्रिय- अन्य कॉलम: Null = YES → NULL अनुमति है
- अब
INSERT INTO Employee (First_Name) VALUES ('Test')→ एरर देगा
महत्वपूर्ण नियम
| नियम | विवरण |
|---|---|
| कॉलम-लेवल | केवल व्यक्तिगत कॉलम पर लागू होता है |
| डिफ़ॉल्ट मान | NOT NULL कॉलम के लिए डिफ़ॉल्ट सेट करना अच्छा अभ्यास |
| इन्सर्ट पर प्रभाव | कॉलम मान देना अनिवार्य या डिफ़ॉल्ट होना चाहिए |
| अपडेट पर प्रभाव | कॉलम को NULL पर सेट नहीं कर सकते |
संयुक्त उपयोग
-- NOT NULL + DEFAULT CREATE TABLE t (id INT NOT NULL DEFAULT 0); -- NOT NULL + UNIQUE (प्राइमरी की जैसा) CREATE TABLE t (id INT NOT NULL UNIQUE); -- NOT NULL + AUTO_INCREMENT (सामान्य PK पैटर्न) CREATE TABLE t (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
याद रखें: PRIMARY KEY में स्वतः NOT NULL शामिल होता है।