2010-10-19 10 views
7

में कनवर्ट करना मैंने कई साल पहले अपना एप्लिकेशन डेटाबेस डिज़ाइन करते समय गलती की है और मेरी टेबल और टेबल फ़ील्ड की संयोजन सेटिंग्स मिश्रित हैं। उनमें से कुछ utf8_general_ci हैं और उनमें से कुछ utf8_unicode_ci हैं।utf8_general_ci टेबल और फ़ील्ड को utf8_unicode_ci

विभिन्न कॉलेशन के साथ तालिकाओं में शामिल होने पर यह समस्याएं पैदा करता है। अब, मैं संयोजन सेटिंग्स को बदलने और उन्हें समान बनाने की योजना बना रहा हूं: utf8_unicode_ci। मैं अपने सभी टेबल पर इन दो एसक्यूएल प्रश्नों को चलाऊंगा।

ALTER TABLE `table1` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
ALTER TABLE `table1` CHANGE `Action` `Action` VARCHAR(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL; 

मेरा प्रश्न, चल रहा है है इन दो एसक्यूएल प्रश्नों किसी भी क्षेत्र मूल्यों, खासकर जो उच्चारण चिह्न वर्ण हैं तोड़ने? या क्या इन दो प्रश्नों को चलाने के लिए सुरक्षित है?

आपसे सुनने के लिए तत्पर हैं।

आपके उत्तरों के लिए धन्यवाद!

उत्तर

5

mysql डॉक जो वर्ण सेट और मिलान को बदलने के बारे में बात करती है देखें

http://dev.mysql.com/doc/refman/5.1/en/charset-column.html

इसके कि कह - "आप एक चरित्र समूह से दूसरे में एक कॉलम में परिवर्तित करने ALTER तालिका का उपयोग करते हैं, MySQL मैप करने के लिए प्रयास करता है डेटा मान, लेकिन यदि चरित्र सेट असंगत हैं, तो डेटा हानि हो सकती है। "

- चेयर

+0

आपके तरह के उत्तर के लिए धन्यवाद। – TamTam

+1

हालांकि, ये दो वर्ण एन्कोडिंग संगत हैं। वास्तव में, यह सटीक वही वर्ण एन्कोडिंग है, सॉर्ट करते समय उनकी तुलना करने का एक अलग तरीका है। कॉलम पर किसी भी इंडेक्स को शायद पुनर्निर्मित करने की आवश्यकता होगी, यह इसके बारे में है। – thomasrutter

5

कोलेक्शन केवल प्रभावित करता है कि किसी फ़ील्ड के भीतर तारों की तुलना कैसे की जाती है, न कि उन्हें कैसे संग्रहीत किया जाता है। जहां तक ​​आप utf8 एन्कोडिंग के साथ रहते हैं, आप सुरक्षित हैं।

+1

yup, यह सही है। जर्मन 'ß' = 'ss' और अन्य जैसे सूक्ष्म सॉर्टिंग और तुलना अंतर हैं, लेकिन कोई डेटा नहीं बदला जाएगा। विवरण –

+1

दोस्तों के लिए http://dev.mysql.com/doc/refman/5.1/en/charset-unicode-sets.html देखें, कृपया इसे देखें (http://dev.mysql.com/doc/refman/ 5.1/en/charset-column.html) जैसा कि कोट्सवासा नीचे उल्लेख करता है। आपके समय के लिए धन्यवाद। – TamTam

+0

मैं सही खड़ा हूँ। अभी भी एक ही एन्कोडिंग के भीतर, स्विचिंग कोलाजेशन सुरक्षित है। – Mchl

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