2015-12-16 2 views
1

Я пытаюсь увеличиваю строку в базе данных MySQL, как этотIncrement ряд MySql Python

rows = cursor.fetchall() 

i = 0 
for row in rows: 
    cursor.execute("UPDATE Table SET order = %s WHERE name = 'JAMES'", (i,)) 
    db.commit() 
    i += 1 

Но в конце для того, чтобы всех элементов в 19, а длина rows 20. Как я могу он идет от 0 до 19, хотя, если я commit() после каждого цикла, это будет решено?

Благодаря

+0

Без оператора 'where' оператор' UPDATE' обновит все записи. – falsetru

+0

@falsetru его там плохо добавьте его к вопросу, я просто его случайно отключил – iqueqiorio

+0

Всегда ли это «ДЖЕЙМС»? Затем одни и те же записи будут обновляться несколько раз. – falsetru

ответ

2

Может быть, вы имели в виду что-то вроде этого (где изменение положение для строк):

rows = cursor.fetchall() 
for i, row in enumerate(rows): 
    cursor.execute("UPDATE Table SET order = %s WHERE name = %s", (i, row.name)) 
    db.commit() 

В противном случае order полей или одна запись обновляется несколько раз.