我正在尝试编写一个添加条目方法,但我可以让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()))
答案 0 :(得分:0)
如果不了解更多关于确切问题的信息,只看你发布的代码,我会看到一些事情。
为什么你不在MySQL中使用auto_increment列作为你想要实现的功能'id'?
检索行时,我从未见过以下语法:
id = c.fetchall()[0] .values()[0]
该行对我不起作用,因为c.fetchall()[0]返回一个没有values方法的元组。由于您知道查询只返回一行,因此您可以执行以下操作:
id = c.fetchone()[0]
or
id, = c.fetchone()
3。您没有锁定表,因此一次多次运行该代码可能无法为您提供所需的结果,并且最终可能会为2行提供相同的ID。