Python SQlite-为什么我需要commit命令

Python SQlite-为什么我需要commit命令,python,sqlite,Python,Sqlite,我使用python(我的IDE是pycharm)并且是SQlite的新手。我读到我必须使用commit来保存数据或更改,否则这些数据或更改中的任何一个都将保存到表中。我使用一个简单的代码在数据库中创建一个表,而不使用提交、定义头并关闭数据库文件。使用DB_浏览器,我打开文件,看到它被更新为我刚刚制作的内容。那么我的问题是为什么我需要commit命令 import sqlite3 from sqlite3 import Error # Connecting SQLite to the Data

我使用python(我的IDE是pycharm)并且是SQlite的新手。我读到我必须使用commit来保存数据或更改,否则这些数据或更改中的任何一个都将保存到表中。我使用一个简单的代码在数据库中创建一个表,而不使用提交、定义头并关闭数据库文件。使用DB_浏览器,我打开文件,看到它被更新为我刚刚制作的内容。那么我的问题是为什么我需要commit命令

import sqlite3
from sqlite3 import Error


# Connecting SQLite to the Database
def create_connection(db_file):
    """ create a database connection to a SQLite database """
    try:
        # Creates or opens a file called mydb with a SQLite3 DB
        db = sqlite3.connect(db_file)
        # Get a cursor object
        cursor = db.cursor()
        # Check if table users does not exist and create it
        cursor.execute('''CREATE TABLE IF NOT EXISTS
                              users(id INTEGER PRIMARY KEY, name TEXT, phone TEXT, email TEXT unique, password TEXT)''')
    except Error as e:
        # Roll back any change if something goes wrong
        db.rollback()
        raise e
    finally:
        # Close the db connection
        db.close()

fname = "mydb.db"
create_connection(fname)
此方法提交当前事务。如果不调用此方法,则自上次调用commit()以来所做的任何操作都无法从其他数据库连接中看到。如果您想知道为什么没有看到写入数据库的数据,请检查您是否忘记调用此方法

请仔细阅读文档,您会发现90%的答案。

显然,来自link

默认情况下,SQLite处于自动提交模式


感谢Richard指出此链接。

我想您可能指的是git?如果你在谷歌上搜索,git上有很多介绍材料。我从这里开始,如果您遇到问题,请回来。我相信您所说的是一个数据库事务:需要所有sql语句都成功执行的多个sql语句,或者将它们回滚。在本例中,您在事务外部执行单个sql语句,因此不需要commit语句。Richard,我在你的链接中发现“默认情况下,SQLite处于自动提交模式”。这回答了我的问题。非常有帮助,谢谢。
commit()