Если у вас есть что-то вроде:
mytable = Table('mytable', db.metadata,
Column('id', db.Integer, primary_key=True),
Column('counter', db.Integer)
)
Вы можете увеличивать поля следующим образом:
m = mytable.query.first()
m.counter = mytable.c.counter + 1
Или, если у вас есть некоторые сопоставленные модели, вы можете написать альтернативно:
m = Model.query.first()
m.counter = Model.counter + 1
Обе версии вернут запрос SQL, который вы просили. Но если вы не включите столбец и просто напишите m.counter += 1
, тогда новое значение будет вычислено в Python (и условия гонки могут возникнуть) Поэтому всегда включайте столбец, как показано в двух примерах выше, в такие встречные запросы.
С уважением,
Christoph