我理解 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 操作)是否成功(影响了一行)该怎么办呢? 因为可能还有一些后续操作,需要确认更新成功,拿到锁才能继续
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.