创建我的表:
cursor.execute("""
CREATE TABLE if not exists intraday_quote (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
symbol VARCHAR(10) NOT NULL,
date DATE,
time DATE,
open FLOAT,
high FLOAT,
low FLOAT,
close FLOAT,
volume INTEGER);
""")
我试图插入这个:
conn = sqlite3.connect('intraday_quote.db')
cursor = conn.cursor()
# Prepare SQL query to INSERT a record into the database.
sql = """INSERT INTO intraday_quote(symbol) VALUES ('Mac123432')"""
cursor.execute(sql)
数据库中没有插入。我缺少什么?
答案 0 :(得分:3)
您需要提交更改,以便它们可以在数据库中生效。 提交所有数据库操作,如update,insert。
cursor.commit()
执行成功后。您可以返回cursor.execute
。如果它不是None
,那么您可以尝试提交更改,否则使用rollback
(练习:)),这样您就不会在数据库中更新错误的数据。
答案 1 :(得分:2)
您需要执行conn.commit()
才能查看数据库中的更改。引用documentation
此方法提交当前事务。如果不调用此方法,则自上次调用commit()以来所执行的任何操作都不会从其他数据库连接中看到。如果您想知道为什么没有看到您写入数据库的数据,请检查您是否忘记调用此方法。