2013-10-04 3 views
2

Я пытаюсь обновить несколько конкретных столбцов, используя sqlite3 и python 2.7. Im вид нового для sqlite3.Как обновить несколько конкретных столбцов с помощью sqlite3 - python

У меня есть база данных, которая имеет 7 столбцов (идентификатор, дата, Columna, columnB, columnC, columnD, columnE)

мне нужно обновить пять последних столбцов (A, B, C, D, E) из последней строки. У меня есть кортеж полный целых чисел, как это:

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

Я tryied это:

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

Но я получаю OperationalError.

В любом случае, я могу сделать это только с одной командой ?.

Большое спасибо за помощь.

ответ

3

Вы имеете UPDATE синтаксис неправильно, использование:

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

Использование .execute(); вы обновляете только одну строку, а не несколько, а data содержит только значения для одного обновления.

См. UPDATE documentation.

Смежные вопросы