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

SQLite插入数据报错:1 values for 4 columns问题排查求助

解决sqlite3 OperationalError: 1 values for 4 columns错误

问题出在插入Parent表的SQL语句语法上:你在VALUES子句里给参数套了多余的外层括号,导致sqlite3将整个(?,?,?,?)识别为单个值,无法匹配表中的4个列,从而触发错误。

修正后的插入代码

将原插入语句的外层括号移除即可:

params2 = (1,"Mum",46,1)
c.execute('''
INSERT INTO Parent (ID , Name , Age , Child_ID) VALUES (?,?,?,?)
''', params2)

完整修正后的代码片段(供参考)

connection = sqlite3.connect("My database")
c = connection.cursor()

c.execute('''
CREATE TABLE IF NOT EXISTS Child (
ID INTEGER PRIMARY KEY,
Name TEXT,
Age INTEGER
);
''')
c.execute(''' CREATE TABLE IF NOT EXISTS Parent (
ID INTEGER PRIMARY KEY,
Name TEXT,
Age INTEGER,
Child_ID INTEGER,
FOREIGN KEY(Child_ID) REFERENCES Child(ID)
);
''')

connection.execute("PRAGMA foreign_keys = ON")
c.execute('''
INSERT INTO Child (Name, Age)  VALUES ("Armaan",17)
''')
connection.commit()

params2 = (1,"Mum",46,1)
# 移除VALUES里的外层括号
c.execute('''
INSERT INTO Parent (ID , Name , Age , Child_ID) VALUES (?,?,?,?)
''', params2)

connection.commit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:14:57