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

MySQL用Read作为字段名报1064语法错误,有哪些需规避的保留字?

报错原因

Read 是MySQL官方定义的保留关键字,你的代码直接将列名作为标识符拼接进SQL语句时,MySQL解析器会优先将Read识别为语法关键字,而非你自定义的字段名,从而触发1064语法错误,报错日志中指向Read = 'ALL'位置的提示也对应了这个根因。

可选修复方案

除了你已经采用的修改列名的方案外,如果确实需要保留该字段名,可以在拼接SQL时用反引号包裹所有动态传入的标识符,修改后的SQL语句参考如下:

sql_update = f"""Update {tbl} set `{target_col}` = %s where `{key_col}` = %s"""

不过该方案属于兼容处理,长期使用更建议避免用保留字作为自定义标识符,降低后续维护风险。

需要规避的常见MySQL保留字

以下是高频容易被误用为字段名的保留字,开发时需要注意避开:

  • 数据库操作类:ADD、ALTER、DELETE、DROP、INSERT、SELECT、UPDATE、CREATE、INDEX、DATABASE、TABLE
  • 权限状态类:READ、WRITE、USER、PASSWORD、GRANT、REVOKE、ADMIN
  • 语法逻辑类:AND、OR、NOT、NULL、TRUE、FALSE、DEFAULT、COLUMN、ROW、ORDER、GROUP、LIMIT、WHERE、FROM、JOIN、UNION
  • 约束类:KEY、PRIMARY、FOREIGN、UNIQUE、CHECK、REFERENCES、VALUES
  • 其他常见保留字:SET、AS、ON、OFF、INTO、USE

如果你需要完整的保留字列表,可以查阅你当前使用的MySQL版本对应的官方文档,所有官方标注的保留字都不建议用作库名、表名、字段名、别名等自定义标识符。

内容的提问来源于stack exchange,提问作者cmccall95

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:09:01