gpt4 book ai didi

python - 在 Python 中,使用 pyodbc,如何执行事务?

转载 作者:太空狗 更新时间:2023-10-29 22:24:08 24 4
gpt4 key购买 nike

我有一个用户名,我必须在许多(最多 ~25 个)表中更改它。 (是的,我知道。)原子事务似乎是解决此类问题的方法。但是,我不知道如何使用 pyodbc 执行此操作。以前看过各种关于原子事务的教程,但是从来没有用过。

设置:Windows 平台、Python 2.6、pyodbc、Microsoft SQL 2005。我将 pyodbc 用于单个 SQL 语句,但没有复合语句或事务。

SQL 的最佳实践似乎表明创建存储过程对此非常有用。我对执行存储过程的恐惧如下,按重要性增加的顺序排列: 1)我从来没有写过存储过程。 2) 我听说 pyodbc 目前还没有从存储过程返回结果。 3) 这绝对不是我的数据库。它是供应商提供的、供应商更新的等等。

那么,解决这个问题的最佳方法是什么?

最佳答案

通过其documentation , pyodbc 确实支持事务,但前提是 odbc 驱动程序支持它。此外,由于 pyodbc 符合 PEP 249 ,只有在手动提交完成后才会存储数据。
这意味着您必须显式地commit() 事务,或者rollback() 整个事务。

请注意,pyodbc 还支持自动提交功能,在这种情况下,您无法进行任何事务。
默认情况下,自动提交是关闭的,但您的代码库可能已将其打开。您应该在执行时检查连接

cnxn = pyodbc.connect(cstring, autocommit=True)

或者,您也可以通过以下方式显式关闭自动提交模式

cnxn.autocommit = False

但这可能会对您的系统产生相当大的影响。

注意:您可以在其 wiki 上获得有关 pyodbc 自动提交模式的更多信息。

关于python - 在 Python 中,使用 pyodbc,如何执行事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com