将MySQL表格从Latin1转换为UTF8时整理信息

时间:2009-11-14 02:13:39

标签: mysql utf-8 internationalization collation latin1

我正在转换现有的表格,如下:

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

所以我的问题是,丢失的整理信息是否会成为问题?我搜索谷歌但无法在任何地方找到这一点。我对collat​​e标志的理解非常基本(在比较我认为的字符串函数中的字符时,它在某种程度上很重要吗?)

感谢

1 个答案:

答案 0 :(得分:2)

utf8字符集的default collationutf8_general_ci,因此不会显示它。