कॉलम परिभाषा में NOT NULL बाधा जोड़कर उस कॉलम में NULL मान डालने से रोकें।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1895 (
Id INT NOT NULL,
FirstName VARCHAR(20),
LastName VARCHAR(20) NOT NULL
);
डेटा डालें (त्रुटि प्रदर्शन)
mysql> INSERT INTO DemoTable1895 VALUES(100, 'John', 'Smith'); -- OK mysql> INSERT INTO DemoTable1895 VALUES(NULL, 'Chris', 'Brown'); -- ERROR 1048: Column 'Id' cannot be null mysql> INSERT INTO DemoTable1895 VALUES(102, 'Carol', NULL); -- ERROR 1048: Column 'LastName' cannot be null mysql> INSERT INTO DemoTable1895 VALUES(103, NULL, 'Miller'); -- OK (FirstName NULL अनुमत)
परिणाम
+-----+-----------+----------+ | Id | FirstName | LastName | +-----+-----------+----------+ | 100 | John | Smith | | 103 | NULL | Miller | +-----+-----------+----------+
NOT NULL मुख्य बिंदु
NULLडालने पर त्रुटि (सख्त मोड में) या चेतावनी (गैर-सख्त)।- प्राइमरी की कॉलम स्वतः
NOT NULLहोते हैं। DEFAULTमान के साथ उपयोग करें:col INT NOT NULL DEFAULT 0।
मौजूदा कॉलम पर NOT NULL जोड़ें
ALTER TABLE DemoTable1895 MODIFY FirstName VARCHAR(20) NOT NULL;
पहले मौजूदा NULL मानों को अपडेट करें, अन्यथा त्रुटि होगी।
सर्वोत्तम अभ्यास
- डिफ़ॉल्ट रूप से सभी कॉलम
NOT NULLबनाएं; केवल वास्तव में वैकल्पिक कॉलम परNULLअनुमत करें। - डेटा अखंडता, इंडेक्स प्रदर्शन, और एप्लिकेशन सरलीकरण के लिए।
- विदेशी कुंजी कॉलम हमेशा
NOT NULL(या कैस्केड के साथ सावधानी) होना चाहिए।