我正在尝试使用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。
无论如何我只用一个命令就可以做到这一点吗?
非常感谢你的帮助。
答案 0 :(得分:4)
您的UPDATE
语法错误,请使用:
c.execute(
"UPDATE database SET columnA=?, columnB=?, columnC=?, columnD=?, columnE=? "
"WHERE id = (SELECT MAX(id) from database))",
data)
使用.execute()
;您只更新了一行而不是几行,data
只包含一次更新的值。