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

SQLite3报no such column: sales_id 记录更新删除功能失效

问题解决方案

核心原因

报错本质是数据库实际存储的Sales表结构和你代码里写的建表语句不一致,触发的常见场景如下:

  • 你第一次运行代码创建Sales表时,还没有添加sales_id字段的定义,后续你补加了sales_id的定义,但因为建表语句加了if not exists判断,只要表已经存在就不会重新执行建表逻辑,旧表结构里始终没有sales_id字段,所以执行增删改操作时就会提示找不到该字段。
  • 你建表语句中UOM unit的字段类型定义不合法,SQLite没有内置的unit数据类型,虽然SQLite动态类型机制不会直接抛出建表错误,但可能引发表结构解析异常。

修复步骤

  • 第一步:删除本地已生成的Bizzapp.db数据库文件,重新运行代码,就会按照你最新的建表语句创建带sales_id字段的Sales表。如果你不想删除原有数据,可以执行SQL语句手动加字段:ALTER TABLE Sales ADD COLUMN sales_id VarChar;
  • 第二步:修正建表语句中的UOM字段类型,根据你的业务需求替换为合法类型,比如存储单位字符串就改为UOM VarChar,参考修正后的建表代码:
c.execute(""" CREATE TABLE if not exists Sales(
                 sales_id VarChar,
                 product_id VarChar,
                 customer_id VarChar,
                 quantity int,
                 price int,
                 order_date date,
                 UOM VarChar
          )""")
  • 可选优化:你的更新逻辑中同时修改了sales_id字段,且WHERE条件用的还是修改前的sales_id值,如果sales_id是唯一标识字段,建议不要随意修改该字段值,避免出现数据匹配错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:15:04