Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

latin1_swedish_ci से utf8_unicode_ci तक सभी पंक्तियों का मिलान कैसे बदलें?

यदि कॉलम डिफ़ॉल्ट तालिका वर्ण सेट का उपयोग कर रहे हैं तो यह प्रति तालिका केवल एक क्वेरी को कनवर्ट करने के लिए है:

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 . से कॉलम परिणाम सेट।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में अग्रणी / अनुगामी वर्णों के साथ एक स्ट्रिंग को कैसे पैड करें - LPAD (), RPAD ()

  2. PHP:mysql_fetch_array () पैरामीटर 1 को संसाधन, बूलियन दिए जाने की अपेक्षा करता है

  3. Mysqli अद्यतन सेट जहां वाक्यविन्यास त्रुटि

  4. SQL तालिका में शर्तों के साथ कॉलम नाम के रूप में कॉलम मान का चयन कैसे करें

  5. mysqli क्वेरी केवल पहली पंक्ति लौटा रही है