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
相关产品推荐
相关产品推荐

