当我添加自动增量属性时,它希望我在我的插入语句中声明该列吗?

问题描述 投票:0回答:1

创建表时,我已使用auto_increment将一列声明为主键。

但是当我在行中插入一行时,它希望我要么添加主键但先声明它,要么当我不输入主键时,它说我没有给它足够的参数。

[我去过的几乎每个站点都告诉我,我不必将主键添加到我的插入语句中,因为它会自动增加自身,但是似乎并没有这样做。

c.execute(“”“如果不存在,则创建表class(

     student_ID INTEGER AUTO_INCREMENT PRIMARY KEY,
     first TEXT,
     last TEXT,
     mark INTEGER,
     target_grade TEXT,
     percentage INTEGER 

)“”“)

稍后...

c.execute(“ INSERT INTO class VALUES(?,?,?,?,?)”,(first,last,mark,target_grade,percentage,))

sqlite3.OperationalError:表类具有6列,但提供了5个值

NameError:未定义名称'ID'

python sqlite primary-key auto-increment
1个回答
1
投票

您必须在INSERT语句中包括将接收值的列的名称(当然不包括主键列):

c.execute("INSERT INTO class (first, last, mark, target_grade, percentage) VALUES (?,?,?,?,?)",(first,last,mark,target_grade,percentage,))
© www.soinside.com 2019 - 2024. All rights reserved.