SQLite 3数据库未更新

时间:2013-07-06 04:57:27

标签: python sqlite

我在Windows 8 x64上运行以下代码:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute("create table films(title text, year text, director text)")
print("table created")

cursor.execute('insert into films values("Annie Hall","1977","Woody Allen")')
cursor.execute('insert into films values("The Godfather","1972","Francis Ford Coppola")')

conn.close()

检查创建的SQLite文件(test.db)(使用sqlite command-line shell测试通过代码创建的表中是否有条目)不显示任何内容。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您必须在conn.commit()之前致电conn.close()

如果您想要 autocommit 模式,则必须将isolation_level=None作为db.connect()来电的参数。

答案 1 :(得分:0)

spec表示光标只能是只读,或者数据库可能处于事务模式。我也不清楚为什么使用execute而没有在预准备语句中指定参数,如cursor.execute('insert into films values(?,?,?)', 'Annie Hall', '1977', 'Woody Allen')中所示。尝试这些想法,我在代码中没有看到任何错误,但我只是建议最佳做法。