带有Python的Mysql无法插入具有自动增量ID的记录,为啥?
Posted
技术标签:
【中文标题】带有Python的Mysql无法插入具有自动增量ID的记录,为啥?【英文标题】:Mysql with Python can't insert record with autoincrement id, why?带有Python的Mysql无法插入具有自动增量ID的记录,为什么? 【发布时间】:2015-02-03 07:47:31 【问题描述】:我在 mysql 数据库中创建了一个包含两列的表 'test':(age int, name 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的新手,请帮助详细说明。
这是我在 *** 的第一次问题,感谢您的帮助。
【问题讨论】:
【参考方案1】:使用这个查询:
insert into test (age,name) values(%s,%s)
您的代码将如下所示:
record = [12, 'Tom']
cursor.execute("insert into test (age,name) values(%s,%s)", record)
【讨论】:
您的回答非常及时,非常棒。 效果很好。非常感谢。我现在意识到默认设置应该更新所有字段。在 *** 的第一次体验真是太棒了。 :)以上是关于带有Python的Mysql无法插入具有自动增量ID的记录,为啥?的主要内容,如果未能解决你的问题,请参考以下文章
MySQL atomic insert-if-not-exists 具有稳定的自动增量
插入具有自动增量 id 的行 - Playframework Scala - Slick