mysql - 更改列排序规则 - 安全吗?

标签 mysql phpmyadmin collation php4

我的票务系统中有一张表,其中包含 15,000 条记录,每条记录都包含一封电子邮件,该电子邮件已转换为消息以添加到票证中。

我们当前的问题是整理 - 当我拿到系统时,它使用的是 latin1_swedish_ci。然而,我们在系统中使用多种欧洲语言,因此我们需要能够正确存储非 ASCII 字符。

我无法让它与 latin1_swedish_ci 排序规则一起使用,但我发现在我的系统测试版本中,将排序规则切换为 utf8_bin 可以解决问题。

所以我需要知道在实时系统上对我的表/列进行此更改是否安全。这会花费很长时间吗(PHPMyAdmin 非常糟糕,当您试图让它非常努力地工作时)或者它会破坏任何现有数据吗?

最佳答案

当第一个字符集中的所有字符都可以在第二个字符集中表示时,从一个字符集转换到另一个字符集是安全的。

对于 latin1 到 utf8 就是这种情况:它是安全的。

但是您必须确保应用程序本身可以处理 utf8 数据。

关于 utf8_bin:utf8 部分是字符集(字符的编码方式),bin 部分是排序规则。不要使用 bin,它会使所有内容都区分大小写,这可能不是您所期望的。请尝试使用 utf8_unicode_ci。 (参见 http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html)

关于mysql - 更改列排序规则 - 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7346378/

相关文章:

mysql - 使用内部联接更新 = 错误代码 : 1111. 组函数的使用无效

mysql - 将多行结果合并为一个

php - 如何修复错误 "CDbCommand ... SQLSTATE[42000]: Syntax error or access violation: 1064"

mysql 查询 - 查找包含所有元素 B 的元素 A

php - INSERT 查询中的西里尔符号

MySQL 不支持 phpMyAdmin 的 "NOT IN"

mysql - fortrabbit 中 Laravel-4 和 phpmyadmin 安装

php - Raspberry Pi phpmyadmin 显示源代码而不是实际界面

mysql - COLLATION 'utf8mb4_general_ci' 对于字符集 'binary' 无效

mysql - 发现 MySQL 列的排序规则