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之外的任何内容)进行提交?