DEFAULT
साथ बनाया गया था नहीं दूँगी मूल्य है कि एक सम्मिलित/अपडेट बयान में एक स्पष्ट मूल्य के अभाव में सम्मिलित किया जाएगा है। SQL-1992 मानक के अनुसार,
ALTER TABLE tbl ADD COLUMN col VARCHAR(20) DEFAULT "MyDefault"
तो फिर तुम इन बयानों
-- 1. This will insert "MyDefault" into tbl.col
INSERT INTO tbl (A, B) VALUES (NULL, NULL);
-- 2. This will insert "MyDefault" into tbl.col
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, DEFAULT);
-- 3. This will insert "MyDefault" into tbl.col
INSERT INTO tbl (A, B, col) DEFAULT VALUES;
-- 4. This will insert NULL into tbl.col
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, NULL);
वैकल्पिक रूप से जारी कर सकता है, तो आप भी UPDATE
बयान में DEFAULT
उपयोग कर सकते हैं: चलो मान लेते हैं, अपने DDL NOT NULL
बाधा नहीं था
-- 5. This will update "MyDefault" into tbl.col
UPDATE tbl SET col = DEFAULT;
-- 6. This will update NULL into tbl.col
UPDATE tbl SET col = NULL;
नोट, सभी डेटाबेस इन सभी SQL मानक वाक्यविन्यासों का समर्थन नहीं करते हैं। NOT NULL
बाधा जोड़ने से 4, 6
कथन के साथ त्रुटि हो जाएगी, जबकि 1-3, 5
अभी भी वैध कथन हैं। तो अपने प्रश्न का उत्तर देने के लिए:
नहीं, NOT NULL
और DEFAULT
अनावश्यक नहीं हैं। विशेष रूप से, NOT NULL
can have a tremendous impact on query performance as explained in this blog post here
स्रोत
2012-08-08 10:08:47
मुझे लगता है कि इस rephrased जा करना चाहिए: "नहीं NULL प्रतिबंध आप उस पंक्ति को अद्यतन नहीं दूँगी बाद यह शून्य मान से बनाया गया था" का नल कॉलम के साथ पाठ्यक्रम पंक्तियों को अद्यतन किया जा सकता है, वे उस कॉलम के मान के रूप में शून्य के साथ अद्यतन नहीं किया जा सकता है। इसके अलावा: मुझे लगता है कि एक पंक्ति बनाने का अर्थ है एक पंक्ति डालना।INSERT कथन में कॉलम के लिए शून्य मान नहीं हो सकते हैं जो कि न तो नल के साथ निर्दिष्ट हैं। – makrom