Python SQLite:SELECT查询是否需要Commit()?

Python SQLite:SELECT查询是否需要Commit()?,python,sqlite,Python,Sqlite,我有一个习惯,当我执行cur.execute()函数时,我会立即执行sql.commit()函数 如果我不修改数据库(即只执行选择查询),是否需要sql.commit() 以下是一个例子: sql = sqlite3.connect('DB.db') cur = sql.cursor() cur.execute('SELECT * FROM table') sql.commit() Python不会开始select语句的事务 从sqlite3模块文档部分: 默认情况下,sqlite3模块在数据

我有一个习惯,当我执行
cur.execute()
函数时,我会立即执行
sql.commit()
函数

如果我不修改数据库(即只执行
选择
查询),是否需要
sql.commit()

以下是一个例子:

sql = sqlite3.connect('DB.db')
cur = sql.cursor()
cur.execute('SELECT * FROM table')
sql.commit()

Python不会开始select语句的事务

从sqlite3模块文档部分:

默认情况下,sqlite3模块在数据修改语言(DML)语句(即INSERT/UPDATE/DELETE/REPLACE)之前隐式打开事务,并在非DML、非查询语句(即SELECT或上述语句以外的任何语句)之前隐式提交事务


如果它是一个简单的select语句(如示例中所示),则没有理由执行commit。实际上,这可能有助于提供更多上下文。让我知道这是否有用:我的select查询很简单,不修改数据库。他们只是拉取信息。文档中的示例暗示您可以使用execute:c.execute(“SELECT*FROM stocks,其中symbol='%s'%symbol)(因为英语不是我的母语,我被文档的后半部分弄糊涂了)在非DML之前执行
并隐式提交事务,非查询语句
意味着sqlite3将隐式地对非DML(插入/删除/更新/创建)和非查询(除select之外的任何内容)进行提交?