【问题标题】: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的新手,请帮助详细说明。

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

【问题讨论】:

    标签: python mysql insert record auto-increment


    【解决方案1】:

    使用这个查询:

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

    您的代码将如下所示:

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

    【讨论】:

    • 您的回答非常及时,非常棒。
    • 效果很好。非常感谢。我现在意识到默认设置应该更新所有字段。在 Stackoverflow 的第一次体验真是太棒了。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2012-09-11
    • 2014-12-05
    • 2012-04-25
    相关资源
    最近更新 更多