为什么flyway使用COLLATE SQL查询给出错误?

时间:2019-05-08 06:42:48

标签: java mysql unicode flyway

我有一个spring boot api,它将消息保存在mySQL(版本5.6)中。现在消息还应支持表情符号,因此我试图通过flyway更新mySQL变量,但它显示所有COLLATE关键字的语法错误。

SQL查询:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'

或任何

 ALTER TABLE/COLUMN query with COLLATE

1 个答案:

答案 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