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

如何解决SQLite3中cursor.execute()创建表时的语法错误

问题解决:SQLite创建表时的语法错误

你的代码报错是因为Primary是SQLite的保留关键字,不能直接作为列名使用,SQL解析器会把它当成SQL语法的一部分,从而触发syntax error。

修改方案有两种:

  1. 给关键字列名加上双引号或方括号,让SQLite把它识别为普通列名:
import sqlite3

con = sqlite3.connect('Exercise Database.db')
c = con.cursor()

c.execute('''CREATE TABLE IF NOT EXISTS Exercises(
Name TEXT,
Force TEXT,
Equipment TEXT,
OneRM REAL,
Difficulty TEXT,
"Primary" TEXT,
Seconary TEXT,
Tertiary TEXT,
Animation BLOB
)''')

con.commit()
con.close()
  1. 直接修改列名,避免使用关键字,比如改成PrimaryMuscle:
import sqlite3

con = sqlite3.connect('Exercise Database.db')
c = con.cursor()

c.execute('''CREATE TABLE IF NOT EXISTS Exercises(
Name TEXT,
Force TEXT,
Equipment TEXT,
OneRM REAL,
Difficulty TEXT,
PrimaryMuscle TEXT,
Seconary TEXT,
Tertiary TEXT,
Animation BLOB
)''')

con.commit()
con.close()

推荐第二种方案,这样后续编写查询语句时不会再遇到类似的关键字冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:07:04