【问题标题】:Why flyway give error with COLLATE SQL queries?为什么 flyway 在 COLLATE SQL 查询中给出错误?
【发布时间】:2019-09-25 20:17:23
【问题描述】:

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

SQL 查询:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'

或任何

 ALTER TABLE/COLUMN query with COLLATE

【问题讨论】:

  • 你能解释一下有什么问题并正确格式化你的代码吗?
  • 对不起,我赶时间,感谢@Delphi 格式化,@M,K 将编辑,谢谢

标签: java mysql unicode flyway


【解决方案1】:

您的问题可能是关于 CHARACTER SET(字符的编码),而不是关于 COLLATION(字符集中的字符顺序)。

如果您的列当前是CHARACTER SET utf8

ALTER TABLE foo CONVERT TO utf8mb4;

如果列已经是 utf8mb4,那你为什么要 collat​​ion (utf8mb4_unicode_ci),它不能优雅地处理 Emoji。最好使用utf8mb4_unicode_520_ci

如需进一步讨论,请提供SHOW CREATE TABLE

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2016-09-29
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多