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