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

SQLite建表插入数据时出现near ")"语法错误该如何解决

报错原因
  • 核心语法问题:CREATE TABLE语句中最后一个字段price int末尾多了多余的逗号,SQL语法不允许字段列表的最后一项末尾加逗号,解析器遇到这个多余逗号后再读到右括号就会触发语法错误。
  • 代码还存在两个潜在问题:
    1. 事务提交需要调用数据库连接对象的commit()方法,你写的cursor.commit()是错误写法,会导致插入的数据无法正常持久化到数据库
    2. 插入语句中的0001作为整型值时,Python会自动省略前置的0,最终存入的值为1,如果需要保留订单号的前置0,建议将orderno字段类型调整为TEXT,插入时传入字符串格式的订单号。
修复后可运行代码
import sqlite3
con = sqlite3.connect("test.db")

cursor = con.cursor()

# 去掉了price字段后的多余逗号
cursor.execute('''CREATE TABLE order_history
                    (orderno int,
                    qty int,
                    price int)
                    ''')

# 若需保留订单号前置0,可将orderno类型改为TEXT,此处插入值写为'0001'
cursor.execute("INSERT INTO order_history VALUES (1, 1, 10)")

# 调用连接对象的commit方法提交事务
con.commit()

# 操作完成后关闭资源
cursor.close()
con.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:54:03