2012-05-15 15 views
12

प्रारंभ में, तालिका "MyTable" निम्नलिखित तरीके से परिभाषित किया गया है:ऑल्टर एसक्यूएल तालिका - अनुमति देते हैं शून्य स्तंभ मान

CREATE TABLE IF NOT EXISTS `MyTable` (
    `Col1` smallint(6) NOT NULL AUTO_INCREMENT, 
    `Col2` smallint(6) DEFAULT NULL, 
    `Col3` varchar(20) NOT NULL, 
); 

कैसे इस तरह से इसे अद्यतन करने के उस कॉलम "कर्नल 3" होगा पूर्ण होने की अनुमति है?

+0

क्या इस प्रश्न का उत्तर दिया गया है? यदि ऐसा है तो उत्तर को स्वीकृत के रूप में चिह्नित करना न भूलें। – RyanfaeScotland

उत्तर

17

निम्नलिखित MySQL कथन को NULL स्वीकार करने के लिए आपके कॉलम को संशोधित करना चाहिए।

ALTER TABLE `MyTable` 
ALTER COLUMN `Col3` varchar(20) DEFAULT NULL 
+0

हाँ, लेकिन जब मैं कॉलम कॉल 3 (दिनांक) को संपादित करता हूं, तो इसे स्वचालित रूप से '0000-00-00' मान मिलता है। लेकिन मैं चाहता हूं कि यह न्यूल के बराबर हो। –

+3

अद्यतन तालिका MyTable SET Col3 = शून्य जहां Col3 = '0000-00-00' – Tschareck

+2

प्रतीक्षा करें ... Col3 a varchar (20) नहीं है, तारीख नहीं है? – Tschareck

17
ALTER TABLE MyTable MODIFY Col3 varchar(20) NULL; 
+0

जब मैं कॉलम को संपादित करता हूं (इसे खाली करने का प्रयास करता हूं) MySQL क्वेरी ब्राउज़र में, निम्न त्रुटि संदेश होता है: डेटा पंक्ति 1 पर कॉलम 'कर्नल 3' के लिए छोटा कर दिया जाता है। यह आपके अपडेट के बाद होता है। –

+0

अगर मैं वैकल्पिक तालिका spen_recipe संशोधित नल वर्कर (20) नल; मुझे गलती मिलती है –

+0

@SachinS: वह पहला 'नल' क्या कर रहा है? – eggyal

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