Блог веб-разработчика: в помощь программистам

Конвертация данных, MySQL ALTER TABLE

Начиная с версии 4.1, СУБД MySQL не просто использует установленную кодировку для сортировки и поиска, но он также и хранит данные в этой кодировке.

Это значит, что если у вас в версии 4.0 была установлена одна кодировка, а сами данные находились в другой кодировке и вам нужно хранить в корректной кодировке, то вам поможет ALTER TABLE.

Оператор ALTER TABLE обеспечивает возможность изменять структуру существующей таблицы. Например, можно добавлять или удалять столбцы, создавать или уничтожать индексы или переименовывать столбцы либо саму таблицу. Можно также изменять комментарий для таблицы и ее тип.

Наиболее безопасно это делать в 2 этапа:

– на первом этапе вы конвертируете CHAR / VARCHAR / TEXT столбец в BINARY / VARBINARY / BLOB:
ALTER TABLE tbl_name CHANGE col1 col1 BLOB;
– на втором этапе вы конвертируете BINARY / VARBINARY / BLOB в CHAR / VARCHAR / TEXT с соответствующей кодировкой:
ALTER TABLE tbl_name CHANGE col1 col1 TEXT CHARACTER SET utf8;
Если же у вас объявленная кодировка соответствует кодировке хранимых данных, но вы хотите использовать другую кодировку и переконвертировать данные, тогда вам достаточно сделать:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;

You can follow any responses to this entry through the RSS 2.0 feed.