Попытка обновить все записи с суммой каждого существующего значения поля плюс передаваемый параметр. Если поле в записи A = 4 и запись B = 5, я хочу обновить все записи, чтобы A = 4 + X и B = 5 + X. Таким образом, я могу быстро увеличить все значения записи на заданное число (X). До сих пор я не могу понять, как получить оператор обновления для расширения передаваемого параметра.
Я могу добавить жестко запрограммированное значение с помощью этой строки: c.execute("UPDATE level SET sell = sell + 1;") Код ниже работает как есть.
Но когда я пытаюсь передать значение с помощью строки update_sell(1) в def update_sell(margin): и сослаться на переданное значение следующим образом, c.execute("UPDATE level SET sell = sell + margin;") это не удается. Что мне здесь не хватает?
Общий питон нуб здесь.
Скрипт для запуска:
#MainScript.py
import sqlite3
from LevelClass import level
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute("""CREATE TABLE level (
            buy integer,
            sell integer,
            quan integer
            )""")
def insert_level(level):
    with conn:
        c.execute("INSERT INTO level VALUES (:buy, :sell, :quan)", {'buy': level.buy, 'sell': level.sell, 'quan': level.quan})
def get_level_by_sell(sell):
    c.execute("SELECT * FROM level WHERE sell=:sell", {'sell': sell})
    return c.fetchall()
def update_sell(margin):
    with conn:
        # below works with "sell + 1", but fails with "sell + margin"
        c.execute("UPDATE level SET sell = sell + 1;")
trans_1 = level(1, 5, 50)
trans_2 = level(2, 10, 60)
insert_level(trans_1)
insert_level(trans_2)
# value to pass to update_sell as var "margin"
update_sell(1)
find = get_level_by_sell(6)
print(find)
find = get_level_by_sell(11)
print(find)
conn.close()
учебный класс:
# saved as LevelClass.py
class level:
    def __init__(self, buy, sell, quan):
        self.buy = buy
        self.sell = sell
        self.quan = quan
    def __repr__(self):
        return "Level('{}', '{}', {})".format(self.buy, self.sell, self.quan)
