如何使用sqlite3更新几个特定的​​列 - python

时间:2013-10-04 22:21:29

标签: python sqlite sql-update tuples

我正在尝试使用sqlite3和python 2.7更新几个特定的​​列。 我是sqlite3的新手。

我的数据库有7列(id,date,columnA,columnB,columnC,columnD,columnE)

我需要更新最后一行的最后五列(A,B,C,D,E)。 我有一个像这样的整数元组:

data = (1,2,3,4,5)

我试过这个:

c.executemany("UPDATE database SET columnA, columnB, columnC, columnD, columnE =      (?,?,?,?,?) WHERE id = (SELECT MAX(id) from database))", data)

但是我得到了一个OperationalError。

无论如何我只用一个命令就可以做到这一点吗?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

您的UPDATE语法错误,请使用:

c.execute(
    "UPDATE database SET columnA=?, columnB=?, columnC=?, columnD=?, columnE=? "
    "WHERE id = (SELECT MAX(id) from database))", 
    data)

使用.execute();您只更新了一行而不是几行,data只包含一次更新的值。

请参阅UPDATE documentation