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

SQLite创建表后插入数据报错:表仅1列却提供3个值

SQLite创建表后插入数据报错:表仅1列却提供3个值

嘿,我一眼就揪出问题啦!你创建表的SQL语句里犯了个超容易忽略的小错误——列定义之间没加逗号,导致SQLite把所有列的内容当成了单个列的定义,所以你的analysisResults表实际上真的只有1列,这就是插入3个值会报错的原因。

先看你原来的创建表代码:

self.cur.execute("""CREATE TABLE IF NOT EXISTS analysisResults(
                    subjectID INTEGER
                    frameworkID INTEGER
                    scoreInFramework INTEGER)""")

你看,subjectID INTEGER、frameworkID INTEGER、scoreInFramework INTEGER这三行之间没有逗号分隔,SQLite会把它们解析成一个列(列名是subjectID,后面的内容会被当成无效的类型描述,但最终表只会生成1列)。

只需要给列之间加上逗号就能解决问题,修正后的完整代码如下:

self.cur.execute("DROP TABLE IF EXISTS analysisResults")

self.cur.execute("""CREATE TABLE IF NOT EXISTS analysisResults(
                    subjectID INTEGER,
                    frameworkID INTEGER,
                    scoreInFramework INTEGER)""")

self.cur.execute("""INSERT INTO analysisResults VALUES(1, 1, 1)""")

另外你担心的「其他表的主键标识符」问题完全不相关哦,这个报错就是纯粹的SQL语法错误,和其他表的结构没有关系~

备注:内容来源于stack exchange,提问作者Jack Walker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:50:28