Python 3通过变量中指定的数量更新sqlite列

时间:2018-07-31 20:55:03

标签: python python-3.x sqlite increment

场景:一个测验程序,其中的问题价值不同。

具有表Table1的SQLite数据库,该表具有字段Int类型的RunningTotal。

我希望通过传递给函数的数量“ updateby”来更新RunningTotal。这是一个数字值(但可能是字符串,因此为了确定,我将其转换为整数。 tableid用于标识要更新的行。

例如(非工作代码:错误是updateby不是列名)

def UpdateRunningTotal(tableid,updateby)
   updateby = int(updateby)
   conn.execute("UPDATE Table1 RunningTotal=RunningTotal+updateby WHERE tableid=?", (tableid,))

我知道是否可以将以下内容加1,但是作为函数,我希望有更大的灵活性来增加不同的数量。

conn.execute("UPDATE Table1 RunningTotal=RunningTotal+1 WHERE tableid=?", (tableid,))

我试图避免执行SELECT语句以读取RunningTotal的当前值,对其进行数学运算,然后在UPDATE语句中使用该结果...对我来说似乎效率低下(但可能不是吗? )

1 个答案:

答案 0 :(得分:0)

conn.execute("UPDATE Table1 set RunningTotal=RunningTotal+? WHERE tableid=?", (updateby, tableid,))

使用此语句...我已经检查了..它的运行状况很好,通过RunningTotal + updateby

更新了数据库中的先前数量。

希望您的问题得到解决