Python中的Mysql无法插入带有自增ID的记录,为什么?

7
我在mysql数据库中创建了一个名为“test”的表格,它有两列:(年龄int,姓名TEXT)。
然后,我使用以下代码将一条记录插入表格中(附带列表):
record = [12, 'Tom']
cursor.execute("insert into test values(%s,%s)", record)

以上代码适用于mysql(我使用python 2.7进行编程)。

然后,我删除旧表并想为新表添加一个AUTO_INCREMENT P_id字段,通过将以下代码添加到CREATE TABLE sql中实现:

P_id int(11) PRIMARY KEY AUTO_INCREMENT,

新建的表格可以在mysql中找到并使用。 但是,当我尝试使用相同的代码插入新记录时:

record = [12, 'Tom']
cursor.execute("insert into test values(%s,%s)", record)

但它不起作用并报告:

OperationalError: (1136, "Column count doesn't match value count at row 1")

似乎我需要自己添加P_id的值? 但是它应该会自动增加,我可以忽略这一步吗? 我对mysql还很陌生,请详细帮忙解答。
这是我第一次在StackOverflow提问,感谢任何帮助。
1个回答

14

使用此查询:

insert into test (age,name) values(%s,%s)

你的代码将会是这个样子:

record = [12, 'Tom']
cursor.execute("insert into test (age,name) values(%s,%s)", record)

1
你的回答非常及时和优秀。 - Deep_fox
1
它运行得非常好。非常感谢。我现在意识到默认设置应该更新所有字段。在Stackoverflow的第一次体验太棒了。 :) - Deep_fox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接