SQlite-为什么我需要提交命令

时间:2019-04-12 18:42:36

标签: python sqlite

我使用python(我的IDE是pycharm)并且是SQlite的新手。我读到我必须使用commit来保存数据或更改,否则所有这些都不保存到表中。我使用简单的代码在数据库中创建表,而无需使用提交,定义标题和关闭数据库文件。然后,使用DB_Browser打开文件,并查看它是否已更新为我刚刚创建的文件。然后我的问题是为什么我需要提交命令?

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)

2 个答案:

答案 0 :(得分:0)

commit()

此方法提交当前事务。如果不调用此方法,则从其他数据库连接中看不到自上次调用commit()以来所做的一切。如果您想知道为什么看不到已写入数据库的数据,请检查您是否没有忘记调用此方法

https://docs.python.org/2/library/sqlite3.html 请仔细阅读文档,您会在90%的时间内找到答案。

答案 1 :(得分:0)

显然,来自this链接

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

感谢Richard指出了此链接。