mysql - 将 utf8_general_ci 表和字段转换为 utf8_unicode_ci

标签 mysql character-encoding collation

几年前我在设计我的应用程序数据库时犯了一个错误,我的表和表字段的排序规则设置是混合的。其中一些是 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/

相关文章:

php - 在 INSERT INTO 查询期间读取自动增量列

php - 使用日期选择器并将值从表单保存到数据库

python - 用python编码元组列表?

linux - Delphi/windows 和 Linux/Lazarus 共享字符以上#127

mysql - 如何在没有标点符号的情况下在mySQL中排序

php - 在 PHP 代码中处理重音

mysql - INSERT ... ON DUPLICATE KEY UPDATE 在我的数据库中不起作用

PHP - 选择当前使用的数据库

Javascript 将数据从 utf-8 转换为 iso-8859-1

SQL 服务器 : impact of column collation on T-SQL instructions