2013-02-08 14 views
22

मुझे पता है, हम modify column syntax का उपयोग करके कॉलम का नाम बदल नहीं सकते हैं, लेकिन change column syntax कर सकते हैं।कॉलम बनाम बदलें कॉलम

मेरा प्रश्न है: modify syntax का मुख्य उपयोग क्या है?

उदाहरण के लिए

,

alter table tablename change col1 col1 int(10) not null 
बजाय

alter table tablename modify col1 int(10) not null 



संपादित
प्रश्न प्रतिस्थापित

modify syntax का मुख्य उपयोग क्या है?

सवाल से ऊपर नीचे

ने उनकी जगह ली क्यों हम बजाय परिवर्तन स्तंभ का उपयोग स्तंभ को संशोधित करने के लिए है?

+1

क्योंकि माइस्क्ल के रचनाकारों ने फैसला किया कि मुझे लगता है कि –

+0

शायद लोग क्योंकि नामकरण के मूल्यों को कम से कम समझते हैं। –

उत्तर

38

परिवर्तन कॉलम आप पहले से ही अपने MySQL डेटाबेस बनाया है, और तथ्य यह है कि अपने स्तंभों में से एक गलत तरीके से नाम दिया गया है के बाद फैसला करते हैं, तो आप इसे हटा दें और एक प्रतिस्थापन बनाने की जरूरत नहीं है, आप बस इसे का उपयोग कर नाम बदल सकते हैं कॉलम बदलें।

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST; 

संशोधित स्तंभ यह आदेश सब कुछ परिवर्तन कॉलम करता है सकते हैं, लेकिन column.You का नाम बदलने यदि आप MySQL में एक स्तंभ का आकार बदलने की जरूरत का उपयोग कर सकते एसक्यूएल आदेश को संशोधित बिना। ऐसा करके आप पहले से कम या कम वर्णों की अनुमति दे सकते हैं। आप को संशोधित करने और अन्य

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz; 

नोट का उपयोग कर एक स्तंभ नाम नहीं बदल सकते: परिवर्तन तालिका एक टेबल में फेरबदल के लिए प्रयोग किया जाता है, ड्रॉप स्तंभ स्तंभ नाम, आकार बदलने के लिए इसका मतलब है। परिवर्तन कॉलम और संशोधित कॉलम का उपयोग वैकल्पिक तालिका का समर्थन करने के लिए किया जाता है और ये दो आदेश स्वतंत्र नहीं हैं।

+0

'FIRST' और' AFTER' शब्द क्या है 'वे' sql' में कीवर्ड हैं? –

+1

'FIRST' - बाएं तरफ से टेबल पर पहला कॉलम होगा; 'Col_name' के बाद - कॉलम इस col_name के बाद स्थित होगा। – Rozkalns

+0

कथन में कॉलम के नाम को फिर से टाइप किए बिना कॉलम पर 'टिप्पणी' मेरी टिप्पणी 'के साथ टिप्पणियां जोड़ने के लिए यह विशेष रूप से उपयोगी है। – Chinggis6

2

यह वही है। यह एक और वाक्यविन्यास (ओरेकल अल्टर टेबल जैसा मुझे पता है) का समर्थन करने के लिए किया गया था। आप दोनों का उपयोग कर सकते हैं।

नोट: ALTER TABLE CHANGE old_col_name new_col_name वाक्यविन्यास एक कमांड का उपयोग करके कॉलम का नाम बदलने की अनुमति देता है।

2

मैं auto_increment बयान में एक गैर auto_increment कॉलम बनाने की कोशिश कर में प्रयास के एक घंटे से अधिक के बाद एक अंतर नहीं पाया: बदलने तालिका doctor_experience संशोधित स्तंभ id पूर्णांक (11) अहस्ताक्षरित auto_increment काम करता है, लेकिन बयान: बदलने तालिका doctor_experience बदलें कॉलम idid int (11) हस्ताक्षरित auto_increment त्रुटि की रिपोर्ट करेगा।

-1

कृपया "तालिका बदलें डॉक्टर_एक्सपीरियंस चेंज कॉलम आईडी ग्राहक_आईडी int (11) नल auto_increment में परिवर्तन करें;" मुझे उम्मीद है कि यह काम करेगा।

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