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

Python MySQL Connector创建ORDER表触发SQL语法错误如何解决

问题原因

ORDER是MySQL的内置保留关键字,属于SQL语法的一部分,常用于ORDER BY排序语句。如果直接将保留关键字用作表名、字段名等自定义标识符,MySQL解析SQL时会将其识别为语法关键字而非自定义标识符,就会抛出语法错误。你另一个建表函数使用的MANU不属于MySQL保留关键字,所以可以正常执行。

解决方法

共有两种常用的修复方案:

  • 方案一:修改表名,避开保留关键字。例如把表名修改为ORDER_INFO、CUST_ORDER这类非关键字的名称,修改后的代码片段如下:
tbl = '''CREATE TABLE IF NOT EXISTS ORDER_INFO(
ORDER_NO CHAR(20) NOT NULL,
ORDER_DATE CHAR(10),
ORDER_STATUS CHAR(5),
CUST_NO CHAR(20),
ITEM_ID INT
)'''
  • 方案二:如果必须保留ORDER作为表名,可以用反引号(`)将表名包裹,强制MySQL将其识别为自定义标识符而非保留关键字,修改后的代码片段如下:
tbl = '''CREATE TABLE IF NOT EXISTS `ORDER`(
ORDER_NO CHAR(20) NOT NULL,
ORDER_DATE CHAR(10),
ORDER_STATUS CHAR(5),
CUST_NO CHAR(20),
ITEM_ID INT
)'''

注意:如果选择第二种方案,后续对该表执行查询、修改、删除等操作时,表名也需要用反引号包裹,例如SELECT * FROM ORDER``才能正常执行。

内容的提问来源于stack exchange,提问作者petshop.py

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:21:02