0
具体来说,我需要在提交或回滚之后调用begin
吗?我看到的东西暗示新会话总是进入begin
状态;但是我想知道会话开始时发生的自动提交事务。我们是否需要明确地做session.begin()?
何时必须发出begin
?同一会话中的多个begin
会与MySQL终端中的多个行为相同吗?
我有一个像(看注释)情况:
--1一个,做在一个循环的交易方法:
for ...: #EACH ONE DESERVES TO HAVE OWN TRANSACTION
session.begin()
for ....:
session.execute("insert into...")
session.commit()
--2调用在同一会话另一个函数的函数:
def f1(): #can be done standalone
session = Session()
session.begin()
...do stuff
session.commit()
def f2():
session = Session()
session.begin()
a = session.execute("select...")
if stuff_not_fine():
session.rollback() #KILL OF CURRENT TRANSACTION
f1()
session.begin() #CONTINUE WHERE IT LEFT
a = session.execute("select...")
...do rest of stuff