ALTER TABLE ... CONVERT TO CHARACTER SET से टेबल कैरेक्टर सेट बदलें
मौजूदा टेबल के डिफ़ॉल्ट कैरेक्टर सेट (और सभी स्ट्रिंग कॉलम) को बदलने के लिए CONVERT TO CHARACTER SET का उपयोग करें।
सिंटैक्स
ALTER TABLE टेबल_नाम CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];
उदाहरण
1. टेबल बनाएं (डिफ़ॉल्ट चारसेट)
mysql> CREATE TABLE CharsetDemo (
-> Id INT,
-> Name VARCHAR(200),
-> Age INT
-> );
2. चारसेट latin7 में बदलें
mysql> ALTER TABLE CharsetDemo CONVERT TO CHARACTER SET latin7;
3. सत्यापित करें
mysql> SHOW CREATE TABLE CharsetDemo;
+-------------+---------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+---------------------------------------------------------------------------------------------------+ | CharsetDemo | CREATE TABLE `charsetdemo` ( `Id` int(11) DEFAULT NULL, `Name` varchar(200) DEFAULT NULL, `Age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin7 | +-------------+---------------------------------------------------------------------------------------------------+
महत्वपूर्ण: CONVERT TO बनाम DEFAULT CHARACTER SET
| कथन | प्रभाव |
|---|---|
ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 | मौजूदा कॉलम डेटा कनवर्ट करता है और टेबल डिफ़ॉल्ट बदलता है |
ALTER TABLE t DEFAULT CHARACTER SET utf8mb4 | केवल नए कॉलम के लिए डिफ़ॉल्ट बदलता है, मौजूदा डेटा अपरिवर्तित |
सामान्य चारसेट
utf8mb4: पूर्ण UTF-8 (अनुशंसित, इमोजी समर्थन)utf8mb3(utf8उपनाम): 3-बाइट UTF-8 (विरासत)latin1: ISO-8859-1 (पश्चिमी यूरोपीय)latin7: ISO-8859-13 (बाल्टिक)
कॉलेशन साथ में
ALTER TABLE टेबल_नाम CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
चेतावनी
- बड़े टेबल पर
CONVERT TOधीमा हो सकता है (टेबल पुनर्निर्माण) - डेटा कनवर्जन अपरिवर्तनीय है - पहले बैकअप लें
- विदेशी कुंजी वाले कॉलम: दोनों टेबल पर लागू करें