几年前我在设计我的应用程序数据库时犯了一个错误,我的表和表字段的排序规则设置是混合的。其中一些是 utf8_general_ci,一些是 utf8_unicode_ci。
这会导致在连接具有不同排序规则的表时出现问题。现在,我打算更改排序规则设置并使它们相同:utf8_unicode_ci。我将在所有表上运行这两个 SQL 查询。
ALTER TABLE `table1` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `table1` CHANGE `Action` `Action` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
我的问题是,运行这两个 SQL 查询是否会破坏任何字段值,尤其是包含重音字符的字段值?或者运行这两个查询是否安全?
期待您的来信。
感谢您的回答!
最佳答案
排序规则只影响字段中字符串的比较方式,而不影响它们的存储方式。就您使用 utf8 编码而言,您是安全的。
关于mysql - 将 utf8_general_ci 表和字段转换为 utf8_unicode_ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3967790/