主题:【求助】mysql 里面邪门的 utf8mb4 问题 -- 铁手

大河奔流 导读 复 14 阅 2289

全看 分页 树展 一览 主题

2020-05-10 05:12:45
4517212 复 4517002
懒厨
懒厨`2616`/bbsIMG/face/0000.gif`70`19904`10436`164653`正二品:特进|辅国大将军`2004-04-04 22:16:06`
我又继续手痒 2

接上面的脚本,我加了这句,把字段的Charset改了:

ALTER TABLE zzIronHand

CHANGE COLUMN `name` `name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

然后再: select * from zzIronHand;

发现没有码,一切正常,索引也没报错。

如果换了其他collate, 尤其是那些ci结尾的,就会报错,说之前创建的唯一索引不对,这个是正常的,因为ci就是Case Insensitive,把e é当成一样的了。

不过好像MySQL的Charset/Collate是有些历史遗留问题的,可以参考一下这里:https://stackoverflow.com/questions/43644218/why-is-table-charset-set-to-utf8mb4-and-collation-to-utf8mb4-unicode-520-ci


2020-05-10 05:12:45