19

Вопрос по python – SQLAlchemy - выберите для примера обновления

Я ищу полный пример использования select для обновления в SQLAlchemy, но не нашел ни одного гугла. Мне нужно заблокировать одну строку и обновить столбец, следующий код не работает (блокируется навсегда): s = ...

Error: User Rate Limit Exceeded<a href="http://docs.sqlalchemy.org/en/rel_0_9/orm/query.html#sqlalchemy.orm.query.Query.with_for_update" rel="nofollow noreferrer">docs.sqlalchemy.org/en/rel_0_9/orm/&#x2026;</a>

от Alan Hamlett

3 ответа

17

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

foo = session.query(Foo).filter(Foo.id==1234).with_for_update().one()
# this row is now locked

foo.name = 'bar'
session.add(foo)

session.commit()
# this row is now unlocked
4

Error: User Rate Limit ExceededEngineError: User Rate Limit ExceededTransactionError: User Rate Limit Exceededvalues(...)Error: User Rate Limit Exceededexecute:

>>> conn.execute(users.update().
...              where(table.c.user=="test").
...              values(email="foo")
...              ) 
>>> my_engine.commit()
7

Late answer, but maybe someone will find it useful.

Error: User Rate Limit Exceededs.execute()Error: User Rate Limit Exceeded

s = conn.execute(table.select(table.c.user=="test", for_update=True))
u = conn.execute(table.update().where(table.c.user=="test), {"email": "foo"})
conn.commit()

Error: User Rate Limit Exceeded

Похожие вопросы