使用Python的Mysql无法插入带有autoincrement id的记录,为什么?

Dee*_*fox 7 python mysql insert record auto-increment

我在mysql数据库中创建了一个带有两列的表'test':( age int,name TEXT).

然后我使用以下代码(带列表)插入记录:

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

上面的代码在mysql中工作(我使用python 2.7进行编程).

然后我删除旧表,并希望通过将以下代码添加到CREATE TABLE sql为新表添加AUTO_INCREMENT P_id字段:

P_id int(11) PRIMARY KEY AUTO_INCREMENT,
Run Code Online (Sandbox Code Playgroud)

新表工作,我在mysql中找到它.但是,当我尝试使用相同的代码插入新记录时:

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

但它不起作用并报告:

OperationalError: (1136, "Column count doesn't match value count at row 1")
Run Code Online (Sandbox Code Playgroud)

看起来我应该自己添加P_id的值?但它应该自动增加,我可以省略吗?我是mysql的新手,请帮忙详细说明.

这是我在StackOverflow中的第一次问题,感谢您的帮助.

Muh*_*lal 10

使用此查询:

insert into test (age,name) values(%s,%s)
Run Code Online (Sandbox Code Playgroud)

您的代码将如下所示:

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