You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 5.7可正常运行的SQL在8.0版本报1064语法错误如何解决?

错误原因

  • rank是MySQL 8.0版本新增的保留关键字,用于支持RANK()窗口函数的语法解析。而在MySQL 5.7版本中rank不属于保留关键字,因此可以直接作为字段名使用,不会触发语法报错。
  • 你提交的SQL语句未对作为字段名的rank做特殊处理,直接拼接在字段列表中,不符合8.0版本的语法规则,因此抛出1064语法错误。

解决方案

你可以选择任意一种方式修复:

  • 方案一:保留现有字段名,使用反引号包裹rank字段,规避保留字校验,修改后的SQL如下:
INSERT IGNORE INTO user_predicts (id,points,`rank`,rid,uid,win_count)
VALUES (0,0,0,1,1016,0)
  • 方案二:彻底避免保留字冲突,将表中rank字段重命名为非保留关键字,例如rank_val、ranking等,后续所有涉及该字段的SQL同步修改字段名即可。

内容的提问来源于stack exchange,提问作者F.Flamel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:36:04