2010-04-09 9 views
40

मान लें कि निम्नानुसार बनाई गई एक तालिका है:एक शून्य बाधा कैसे गिराया जा सकता है?

create table testTable (colA int not null) 

आप शून्य बाधा को कैसे छोड़ देंगे? मैं

ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL; 

की रेखाओं के साथ कुछ ढूंढ रहा हूं, जो कि अगर मैं PostgreSQL का उपयोग करता हूं तो ऐसा लगता है। मेरे आश्चर्य के लिए, जहां तक ​​मैं खोजने में सक्षम हूं, MySQL दस्तावेज़, Google और हां, यहां तक ​​कि स्टैक ओवरफ्लो (दर्जनों या सैकड़ों नल-संबंधित प्रश्नों के बावजूद) एक साधारण SQL कथन की ओर अग्रसर नहीं लगते हैं जो काम करेगा।

उत्तर

57

मैं इस

ALTER TABLE testTable MODIFY COLUMN colA int; 
+0

किसी कारण से, 'तालिका परीक्षण में परिवर्तन करें सक्षम करने के लिए कॉल int int null' को संशोधित करने के लिए काम नहीं किया गया था: उपर्युक्त वास्तव में सही कथन है, हालांकि एकल उद्धरण के साथ (मैं उन्हें काम करने के लिए उन्हें हटा रहा हूं)। –

+0

उत्कृष्ट उत्तर :) –

8

MySQL में, शून्यता डेटाटाइप का एक हिस्सा है, बाधा नहीं। तो:

ALTER TABLE testTable MODIFY COLUMN colA int null; 
+0

'तालिका बदलना एक एक्स नल' रिटर्न कॉलम में बदलाव करें "आपको अपने एसक्यूएल सिंटैक्स में एक त्रुटि है; मैन्युअल रूप से लाइन 1 पर 'int null' के उपयोग के लिए सही वाक्यविन्यास के लिए आपके MySQL सर्वर संस्करण से मेल खाता है [SQL राज्य = 42000, डीबी त्रुटि कोड = 1064] " मैंने टेबल टेस्ट को बदलने में भी कोशिश की है एक इंटेल डिफॉल्ट नल संशोधित करें; 'और' तालिका एक्स को एक डिफ़ॉल्ट डिफॉल्ट नल कॉलम में बदलें ': परिणाम वही है। मैं mysql 5.1 का उपयोग कर रहा हूँ। –

+0

क्षमा करें, यह 'संशोधित कॉलम' है, न कि 'ALTER'। संपादित। –

3

वाक्य रचना की तरह कुछ की कोशिश करेगा पास इसके वास्तव में था:

ALTER TABLE testTable CHANGE colA colA int null; 
0
ALTER TABLE test.tbl_employee 
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL; 
1

प्रयास करें

ALTER TABLE testTable MODIFY COLUMN columnA int; 
+0

क्या आप कृपया अपने उत्तर के लिए थोड़ा और संदर्भ प्रदान कर सकते हैं? – dethtron5000

0

यह आपको MySQL कार्यक्षेत्र में तालिका बाधा या डेटाप्रकार संशोधित जब के लिए मुझे

ALTER TABLE table_name 
MODIFY COLUMN column_name VARCHAR(25) UNIQUE; 
0

काम करता है तो यह कोड यह अनुरोध पूरा करने में निष्पादित करने के लिए जा रहा है पता चलता है। और यह वह प्रश्न है जो मुझे उस बॉक्स से मिला है।

ALTER TABLE `table_name`.`column_name` CHANGE COLUMN `column_name` `colunm_name`datatype NULL ; 

लेकिन यहां पकड़ यह है कि आपके पास प्राथमिक कुंजी नहीं है क्योंकि आपको इसे अनूठा सेट करना है।

संबंधित मुद्दे