2009-04-12 15 views
138
create table check2(f1 varchar(20),f2 varchar(20)); 

डिफ़ॉल्ट collation latin1_general_ci के साथ एक तालिका बनाता है;तालिका के डिफ़ॉल्ट संयोजन को कैसे बदला जाए?

alter table check2 collate latin1_general_cs; 
show full columns from check2; 

कॉलम के व्यक्तिगत संयोजन को 'latin1_general_ci' के रूप में दिखाता है।

फिर तालिका तालिका को बदलने का क्या प्रभाव है?

+0

के संभावित डुप्लिकेट [बदलें डेटाबेस मिलान] (http://stackoverflow.com/questions/5906585/change-database-collation) –

+0

आप अपने आप के रूप में सही जवाब को बदलने के लिए इच्छा हो सकती है और कई अन्य इस बात से सहमत हैं कि दूसरा एक सही है। –

+1

@GregMiernicki किया। – dharm0us

उत्तर

485

वर्तमान कॉलम के उन लोगों (ध्यान दें परिवर्तित को खंड) सहित डिफ़ॉल्ट वर्ण सेट और एक मेज का मिलान बदलने के लिए:

alter table <some_table> convert to character set utf8 collate utf8_unicode_ci; 
+24

बिल्कुल मैं देख रहा था, धन्यवाद। अन्य उत्तरों समस्या की व्याख्या करते हैं, लेकिन इस के पास समाधान है। – Pablo

+3

मैं सहमत हूं। यह निश्चित रूप से मेरी खोज के लिए क्या था। – James

+0

देखने के बारे में क्या? मुझे दृश्य के लिए बदलने की जरूरत है .. –

9

यह तालिका के लिए डिफ़ॉल्ट संयोजन सेट करता है; यदि आप एक नया कॉलम बनाते हैं, तो मुझे latin_general_ci के साथ एकत्रित किया जाना चाहिए - मुझे लगता है। व्यक्तिगत कॉलम के लिए संयोजन को निर्दिष्ट करने का प्रयास करें और देखें कि क्या यह काम करता है। MySQL के पास इस तरह से संभालने के तरीके के संबंध में कुछ वास्तव में विचित्र व्यवहार है।

+32

समस्या को हल करने के लिए नीचे स्क्रॉल करें – Moak

29

MySQL में संयोजन के 4 स्तर हैं: सर्वर, डेटाबेस, तालिका, कॉलम। यदि आप सर्वर, डेटाबेस या तालिका के संयोजन को बदलते हैं, तो आप प्रत्येक कॉलम के लिए सेटिंग नहीं बदलते हैं, लेकिन आप डिफ़ॉल्ट कॉलेशन बदलते हैं।

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

+4

वास्तव में, MySQL में ** पांच ** कॉलेशन के स्तर हैं, एक चरित्र सेट स्तर डिफ़ॉल्ट संयोजन सेटिंग है जो कई लोग भूल जाते हैं। – Devy

+2

कनेक्शन कॉलेशन 'शो वैरिएबल जैसे "collation%" भी है;', तो कुल *** SIX *** है। –

0

SCHEMA न केवल तालिका बदलना पड़ सकता है

ALTER SCHEMA <table name> डिफॉल्ट कैरेक्टर सेट utf8 डिफॉल्ट कॉललेट utf8_general_ci;

(MariaDB 10)

+0

'डेटाबेस नाम>' '

' – dnivog

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