这是我的代码:
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/