2015-01-25 6 views
1

Вот код, который я пытаюсь выполнитьPython, sqlite3 и UPDATE несколько строк

db.execute('''UPDATE WARDWINS \ 
    SET map = ?, 
    SET team1wards = ?, 
    SET team2wards = ?, 
    SET mostwards = ?, 
    SET winningteam = ?, 
    SET mostwardswin = ? 
    where matchID = ?''', (dic['mapID'][0], dic['team1wards'], dic['team2wards'], dic['mostwards'], dic['winningteam'], dic['wardswins'], match)) 

То, что я хочу добиться того, чтобы иметь единый Execute команды Обновить все вышеуказанные строки в то же время, но по какой-то причине я не могу понять, как это сделать. Появляется следующее сообщение об ошибке:

>>> dic['mostwards'], dic['winningteam'], dic['wardswins'], match)) 
sqlite3.OperationalError: near "SET": syntax error 

ответ

-1

Итак, как оказалось, ответ был почти правильным. (Разве это не всегда?) Команда sqlite3.execute требует только одного SET, а остальные - избыточности и создала синтаксическую ошибку. Правильный способ сделать это следующим образом:

db.execute('''UPDATE WARDWINS \ 
    SET map = ?, 
    team1wards = ?, 
    team2wards = ?, 
    mostwards = ?, 
    winningteam = ?, 
    mostwardswin = ? 
    where matchID = ?''', (dic['mapID'][0], dic['team1wards'], dic['team2wards'], dic['mostwards'], dic['winningteam'], dic['wardswins'], match)) 
Смежные вопросы