python - 为什么在进行更新时需要显式提交?

标签 python cx-oracle

这是我的代码:

import cx_Oracle

conn = cx_Oracle.connect(usr, pwd, url)
cursor = conn.cursor()
cursor.execute("UPDATE SO SET STATUS='PE' WHERE ID='100'")
conn.commit()

如果我删除 conn.commit(),该表不会更新。但是对于选择语句,我不需要 conn.commit()。我很好奇为什么?

最佳答案

DB-API默认情况下,规范要求连接到数据库开始一个新事务。您必须commit 以确认您所做的任何更改,或rollback 以放弃它们。

Note that if the database supports an auto-commit feature, this must be initially off.

SELECT 语句,因为它们从不对数据库进行任何更改,所以不必提交它们的更改。

关于python - 为什么在进行更新时需要显式提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2847999/

相关文章:

python - 很长的I/O进程能否由线程处理

python - 无论如何找不到该元素

Python cx_oracle 多线程不适用于每个线程的游标

python - 这是检测 cx_oracle 是否安装了 unicode 或非 unicode 版本的首选方法吗?

python - 允许 64 位或更多位的 numpy.random.binomial 的替代方案?

python - 删除容器是否会破坏 GTK 内存中的内部小部件

python - 随机访问csv文件内容

django - Django ORM 与 Oracle 的性能差

Windows 7 上的 Python 3.5.3 和 Oracle 11.2 : cannot locate oracle include files