2011-07-29 13 views
7

मैं mysql में वर्चर्स से enum तक एक कॉलम कन्वर्ट करना चाहता हूं। यदि मेरे नए enum मानों में मौजूदा मान शामिल हैं, तो क्या मैं उस कॉलम में मौजूदा मान खो दूंगा?Varchar to eNum

+2

इस तरह के प्रश्नों के साथ, सबसे आसान जवाब है कोशिश करना और पता लगाना। डेटा हानि की संभावना से बचने के लिए आप टेबल के बैकअप पर ऐसा कर सकते हैं। –

+1

क्या आप यहां जो कुछ भी पढ़ते हैं और डेटा खोने का जोखिम रखते हैं, क्या आप अंधेरे से भरोसा करेंगे? –

+0

मुझे मेरे अनुवर्ती प्रोग्रामर से असहमत होने दें। मुझे विश्वास है कि तुच्छ लेकिन दिलचस्प प्रश्नों में एक जगह नहीं है। – Frankie

उत्तर

8

नहीं, यदि मूल्य enum में शामिल हैं तो आप डेटा खो देंगे नहीं।

+0

धन्यवाद !! इसने काम कर दिया! – MonOve

9

अपने आप की तरह कॉपी पेस्ट दीवाने के लिए, प्रक्रिया से निम्नलिखित उत्पादन विश्लेषण()

SELECT status FROM post PROCEDURE ANALYSE()\G 
*************************** 1. row *************************** 
      Field_name: crawling.post.status 
       Min_value: done 
       Max_value: pulled 
      Min_length: 3 
      Max_length: 6 
     Empties_or_zeros: 0 
        Nulls: 0 
Avg_value_or_avg_length: 3.7880 
        Std: NULL 
     Optimal_fieldtype: ENUM('done','new','pulled') NOT NULL 

और निम्न आदेश का उपयोग कर मेरी स्थिति कॉलम परिवर्तित करने के लिए Enum के लिए दिया:

ALTER TABLE post MODIFY COLUMN status ENUM('done', 'new', 'pulled') DEFAULT 'new'; 

यह करने के लिए ठीक है DEFAULT 'नया' छोड़ें।