【发布时间】:2011-06-25 13:23:08
【问题描述】:
我想知道当通过各种游标/连接给出各种命令(开始/启动事务、提交等)时,事务的行为如何。即,以下哪一组语句实际上引入了单个事务并在最后提交?
connection = pyodbc.connect(...)
cursor = connection.cursor()
cursor.execute('START TRANSACTION')
cursor.execute('INSERT ....')
cursor.execute('COMMIT')
对比
connection = pyodbc.connect(...)
connection.cursor().execute('START TRANSACTION')
connection.cursor().execute('INSERT ....')
connection.cursor().execute('COMMIT')
对比
pyodbc.connect(...).cursor().execute('START TRANSACTION')
pyodbc.connect(...).cursor().execute('INSERT ....')
pyodbc.connect(...).cursor().execute('COMMIT')
(实际上,这些命令分散在我的代码中,我正在尝试找出在哪些级别引入单例)
当然,我可以通过“尝试”在某种程度上找到答案,但我更喜欢权威性更高的答案,所以我知道从现在起一周内事情不会中断。
我正在使用Python's Database API,尽管我认为这个问题不一定是特定于 python 的。 我可以想象(尽管我确实希望相反)这个问题是特定于数据库的。值得一提的是:我们使用的是 MsSQL Server 2000。
【问题讨论】:
标签: python database transactions