Это должно быть очень просто, но я не могу понять, как это сделать. Я хотел бы изменить значения двух разных столбцов. Один от 1 до общего числа строк, а другой - от общего числа строк до одного (в основном увеличивающегося и уменьшающегося числа). Я пробовал:колонка обновления с номерами в таблице sqlite
start = 0
end = number_of_rows + 1
c.execute('SELECT * FROM tablename')
newresult=c.fetchall()
for row in newresult:
start += 1
end -= 1
t = (start,)
u = (end,)
c.execute("UPDATE tablename SET Z_PK = ?", t) ---> this will transform all rows with Z_PK since there is no where statement to limit
c.execute("UPDATE tablename SET Z_OPT = ?", u)
Дело в том, что я не знаю, как я могу добавить «где» заявление, так как у меня нет значения, я уверен, для строк (например, числа идентификаторов). Возможно, было бы вернуть текущую строку в качестве аргумента для «где», но я не знаю, как это сделать ...
Есть ли какая-либо колонка INTEGER PRIMARY KEY? Это таблица БЕЗ ROWID? Есть ли ограничение на эти два столбца? –
Нет ограничений. Проблема в том, что существует целочисленный первичный ключ, и на самом деле это тот, который я хочу увеличить (Z_PK). Проблема заключалась в том, что я объединять две базы данных, а некоторые Z_PK имеют одинаковое число. Я хотел бы затем перебрать таблицу и обновить новые номера. – Trichophyton
Итак, вы объединили две таблицы в новую таблицу без ограничения первичного ключа? –