Отсутствует информация о сопоставлении при преобразовании таблицы MySQL из Latin1 в UTF8 - PullRequest
1 голос
/ 14 ноября 2009

Я конвертирую существующую таблицу, такую ​​как эта:

CREATE TABLE `example`(`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
                       `column1` char(32) COLLATE latin1_general_ci NOT NULL 
                           DEFAULT '',   
                       `column2` char(64) COLLATE latin1_general_ci NOT NULL 
                           DEFAULT '',
                       PRIMARY KEY (`id`)) 
              ENGINE=MyISAM AUTO_INCREMENT=1 
              DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

до utf8 с помощью следующей команды:

ALTER TABLE example CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Кажется, это работает нормально, но полученная таблица не содержит никакой информации о сопоставлении:

CREATE TABLE `example` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                        `column1` char(32) NOT NULL DEFAULT '',
                        `column2` char(64) NOT NULL DEFAULT '',
                        PRIMARY KEY (`id`)
                        ) ENGINE=MyISAM DEFAULT CHARSET=utf8

Итак, мой вопрос, будет ли проблема с отсутствующей информацией для сравнения? Я искал в Google, но нигде не нашел упоминания об этом. Мое понимание флага сортировки довольно простое (мне кажется, оно имеет какое-то значение при сравнении символов в строковых функциях?)

спасибо

1 Ответ

2 голосов
/ 14 ноября 2009

По умолчанию сопоставление для кодировки utf8 равно utf8_general_ci, поэтому оно не отображается.

...