Spec-Zone .ru
спецификации, руководства, описания, API

10.1.11. Обновление от До Текущей Поддержки Unicode

Этот раздел описывает проблемы, имеющие отношение к поддержке Unicode, к которой можно быть обращенным, обновляя до MySQL 5.6 от более старого выпуска MySQL. Это также обеспечивает направляющие линии для того, чтобы они понизили от MySQL 5.6 до более старого выпуска.

В большинстве отношений, обновляя до MySQL 5.6 должен представить немного проблем относительно использования Unicode, хотя есть некоторые потенциальные области несовместимости. Они - основные проблемные области:

Следовательно, если Вы хотите обновить таблицы от utf8 к utf8mb4 чтобы использовать в своих интересах дополнительно-символьную поддержку, может быть необходимо измениться на некоторый столбец или индексировать определения.

Таблицы могут быть преобразованы из utf8 к utf8mb4 при использовании ALTER TABLE. Предположите, что таблица была первоначально определена следующим образом:

CREATE TABLE t1 (  col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,  col2 CHAR(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL) CHARACTER SET utf8;

Следующий оператор преобразовывает t1 использовать utf8mb4:

ALTER TABLE t1  DEFAULT CHARACTER SET utf8mb4,  MODIFY col1 CHAR(10)    CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,  MODIFY col2 CHAR(10)    CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL;

С точки зрения табличного контента, преобразования из utf8 к utf8mb4 подарки никакие проблемы:

С точки зрения структуры таблицы, выгоды, преобразовывая из utf8 к utf8mb4 это максимальная длина столбца, или индексируйте ключ, неизменно с точки зрения байтов. Поэтому, это меньше с точки зрения символов, потому что максимальная длина символа составляет четыре байта вместо три. Для CHAR, VARCHAR, и TEXT типы данных, наблюдайте за этими вещами, преобразовывая Ваши таблицы MySQL:

Если предыдущие условия применяются, следует или уменьшить определенную длину столбцов или индексируете, или продолжайте использовать utf8 вместо utf8mb4.

Вот некоторые примеры, где структурные изменения могут быть необходимы:

Предыдущие типы изменений, наиболее вероятно, будут требоваться, только если у Вас есть очень длинные столбцы, или индексирует. Иначе, следует быть в состоянии преобразовать свои таблицы из utf8 к utf8mb4 без проблем. Можно сделать это при использовании ALTER TABLE как описано ранее в этом разделе после обновления на месте до 5.6.

Следующие элементы суммируют другие потенциальные области несовместимости:

Если Вы обновили до MySQL 5.6, и затем решаете понизить назад к более старому выпуску, эти соображения применяются: