我理解 sqlalchemy 在事务中,update 不会立刻生效,甚至不会立刻发到服务器上,而是等到 commit 才生效。
举个例子:
with Seesion as session:
object = session.query(Table).where(key=param).limit(1)
content = "这里是业务逻辑计算的值"
# 用取到的对象的 ID 进行更新,只有一个线程能更新成功,我理解
Table.update(Table).set(Table.content = content).where(id = object.id)
sessoin.commit()
那么问题来了,如果我想知道我 update 操作(或者说是 commit 操作)是否成功(影响了一行)该怎么办呢? 因为可能还有一些后续操作,需要确认更新成功,拿到锁才能继续