【问题标题】:Error Number: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='错误号:1267 非法混合排序规则 (latin1_swedish_ci,IMPLICIT) 和 (utf8_general_ci,COERCIBLE) 用于操作 '='
【发布时间】:2015-09-16 19:28:17
【问题描述】:

表名:xyz 类型:InnoDB 排序规则:latin1_swedish_ci

字段

---------------------------------------------------------------------------
            Field        | Type        | Collation         | Extra        |
---------------------------------------------------------------------------
            id           | int         |                   | Primary Key  |
---------------------------------------------------------------------------
            name         | varchar     | latin1_swedish_ci |              |
---------------------------------------------------------------------------

这是我的数据库表。当我尝试为类似这样的名称插入一个值时

If T₀, T₁, T₂ . . . . . . . Tn represent the terms in the expansion of (x + a)n, then (T₀ - T₂ + T₄ - . . )2 + (T₁ - T₃ + T₅ - . . )2 

我收到以下错误:

Error Number: 1267Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

我进行了快速研究,发现了许多提供解决方案的 S.O 问题和文章,但没有一个对我有用。

我的参考:Visit

我尝试使用如下查询更改表的排序规则:

ALTER TABLE xyz CHARACTER SET utf8 COLLATE utf8_general_ci;

但错误仍然存​​在。

我也尝试过使用utf8_unicode_ci,但这也没有用。

原因?解决方案?谢谢。

【问题讨论】:

标签: mysql utf-8 collation


【解决方案1】:

感谢 @vhu 将其标记为重复。

回答礼貌:@Marvin W

我修改了我的表并解决了我的问题。

ALTER TABLE xyz CONVERT TO CHARACTER SET utf8;

【讨论】:

  • mysql v8.0.18 显示有关 utf8 是已弃用 UTF8MB4 的别名的警告,因此提供新字符集效果很好:ALTER TABLE xyz CONVERT TO CHARACTER SET UTF8MB4;
猜你喜欢
  • 2010-10-30
  • 2016-09-17
  • 2010-09-16
  • 2015-06-03
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
相关资源
最近更新 更多