我有一个spring boot api,它将消息保存在mySQL(版本5.6)中。现在消息还应支持表情符号,因此我试图通过flyway更新mySQL变量,但它显示所有COLLATE关键字的语法错误。
SQL查询:
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'
或任何
ALTER TABLE/COLUMN query with COLLATE
答案 0 :(得分:0)
您的问题大概是关于CHARACTER SET
(字符编码)的,而不是关于COLLATION
(字符集内字符的顺序)的问题。
如果您的列当前为CHARACTER SET utf8
,
ALTER TABLE foo CONVERT TO utf8mb4;
如果列已经是utf8mb4,那么为什么要使用归类(utf8mb4_unicode_ci
),它不能很好地处理Emoji。最好使用utf8mb4_unicode_520_ci
。
为进一步讨论,请提供SHOW CREATE TABLE
。