在mysqldb中添加条目后递增id

时间:2012-08-21 01:23:02

标签: mysql-python

我正在尝试编写一个添加条目方法,但我可以让id的增量工作。它正在影响我拥有的其他方法,因为当我执行删除时,它会删除所有条目而不是删除特定行。你能帮帮忙吗。

def addEntry () :

    #define cursor
    c=db.cursor()

    #execute cursor
    id=c.execute("select max(id)+1 from phones")

    # digs deep to get next id
    id = c.fetchall()[0].values()[0]

    #dosql 
    dosql("insert into phones values (%d,'%s','%s')" % (id,nameVar.get(), phoneVar.get()))

1 个答案:

答案 0 :(得分:0)

如果不了解更多关于确切问题的信息,只看你发布的代码,我会看到一些事情。

  1. 为什么你不在MySQL中使用auto_increment列作为你想要实现的功能'id'?

  2. 检索行时,我从未见过以下语法:

    id = c.fetchall()[0] .values()[0]

  3. 该行对我不起作用,因为c.fetchall()[0]返回一个没有values方法的元组。由于您知道查询只返回一行,因此您可以执行以下操作:

    id = c.fetchone()[0]
    
    or
    
    id, = c.fetchone()
    

    3。您没有锁定表,因此一次多次运行该代码可能无法为您提供所需的结果,并且最终可能会为2行提供相同的ID。