为什么这个sqlite3 UPDATE会出现语法错误?

时间:2015-03-30 03:55:39

标签: python sqlite

我有一个函数可以删除一些表并重新初始化一个工作正常的新集合,然后当它使用以下内容更新现有表时:

self.cursor.execute('''UPDATE beers1 SET (beer_name, og, fg, beer_desc, ibu, glass_type, keg_size) 
    VALUES (?,?,?,?,?,?,?) where id=1''',("Beer", 1, 1, "Delicious!", 0, "Pint Glass", 640))

然后给了我:

OperationalError: near "(": syntax error

任何见解都会非常有用。谢谢!

1 个答案:

答案 0 :(得分:0)

UPDATE语句的标准SQL语法是:

UPDATE beers1
   SET (beer_name, og, fg, beer_desc, ibu, glass_type, keg_size) =
       (?, ?, ?, ?, ?, ?, ?)
 WHERE id = 1

或者:

UPDATE beers1
   SET beer_name = ?, og = ?, fg = ?,
       beer_desc = ?, ibu = ?, glass_type = ?, keg_size = ?
 WHERE id = 1

您需要检查SQLite3手册以查看SQLite3支持哪些内容。第二个几乎得到支持;第一个可能不是。