Как изменить кодировку таблицы в MySQL?
есть MySQL table который имеет это определение взято из SQLYog Enterprise:
Table Create Table
----------------- ---------------------------------------------------------
etape_prospection CREATE TABLE `etape_prospection` (
`etape_prosp_id` int(10) NOT NULL AUTO_INCREMENT,
`type_prosp_id` int(10) NOT NULL DEFAULT '0',
`prosp_id` int(10) NOT NULL DEFAULT '0',
`etape_prosp_date` datetime DEFAULT NULL,
`etape_prosp_comment` text,
PRIMARY KEY (`etape_prosp_id`),
KEY `concerne_fk` (`prosp_id`),
KEY `de_type_fk` (`type_prosp_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
Я хочу изменить default charset в этой таблице latin1 до utf8. Как это сделать ?
4 ответов:
Если вы хотите изменить таблицу
default character setи все символьные столбцы в новый набор символов, используйте оператор как это:ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;поэтому запрос будет:
ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8;
изменить кодировку таблицы по умолчанию:
ALTER TABLE etape_prospection CHARACTER SET utf8, COLLATE utf8_general_ci;чтобы изменить кодировку столбца строки, исключите этот запрос:
ALTER TABLE etape_prospection CHANGE COLUMN etape_prosp_comment etape_prosp_comment TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;
The
ALTER TABLEMySQL команда должна сделать трюк. Следующая команда изменит набор символов по умолчанию вашей таблицы и набор символов всех ее столбцов на UTF8.ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;эта команда преобразует все текстовые столбцы в таблице в новый набор символов. Наборы символов используют разное количество данных на символ, поэтому MySQL преобразует тип некоторых столбцов, чтобы обеспечить достаточное пространство для размещения того же количества символов, что и старый столбец тип.
Я рекомендую вам прочитать ALTER TABLE MySQL documentation перед изменением каких-либо реальных данных.
вы можете изменить значение по умолчанию с
alter table set default charsetно это не изменит кодировку существующих столбцов. Чтобы изменить это, вам нужно использоватьalter table modify column.изменение кодировки столбца означает только то, что он сможет хранить более широкий диапазон символов. Ваше приложение разговаривает с БД, используя клиент mysql, поэтому вам может потребоваться изменить кодировку клиента.
Comments