यदि कॉलम डिफ़ॉल्ट तालिका वर्ण सेट का उपयोग कर रहे हैं तो यह प्रति तालिका केवल एक क्वेरी को कनवर्ट करने के लिए है:
ALTER TABLE t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
यदि वर्ण सेट प्रत्येक कॉलम पर अलग-अलग सेट किया गया है, AFAIK डेटाबेस में सभी तालिकाओं के सभी कॉलम पर सीधे MySQL में ऐसा करने का कोई तरीका नहीं है, लेकिन आप अपनी पसंद की भाषा में एक छोटा प्रोग्राम लिख सकते हैं जो ऐसा करता है।पी>
आपका प्रोग्राम INFORMATION_SCHEMA.COLUMNS
को क्वेरी करेगा। कोड>
तालिका और देखें CHARACTER_SET_NAME
कॉलम:
SELECT * FROM `INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_SCHEMA = 'dbname' AND CHARACTER_SET_NAME = 'latin1'
प्रत्येक परिणाम पंक्ति के लिए ALTER TABLE
. को संश्लेषित और निष्पादित करना तुच्छ है उस स्थान पर क्वेरी करें जो वर्ण सेट और संयोजन को उचित रूप से बदल देती है:
ALTER TABLE t MODIFY col TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
उपरोक्त क्वेरी में t
, col
और TEXT
TABLE_NAME
. के मान होंगे , COLUMN_NAME
और DATA_TYPE
INFORMATION_SCHEMA.COLUMNS
. से कॉलम परिणाम सेट।