为什么doite SQLite保存插入的数据?

时间:2017-01-26 12:23:03

标签: python sql sqlite

为什么总是必须运行数据插入语句以将数据插入到python代码中的表COMPANY中。它不等于双重输入数据吗?我认为数据插入语句应该运行一次以插入数据一次,之后数据应该可以从数据库中读取。但是,我总是必须运行数据插入语句才能从数据库中读取数据。如果省略数据插入语句,我无法从数据库中读取数据,就好像之前没有插入数据一样。

有人可以帮我理解为什么会这样吗?

以下是代码:

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully"

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \      VALUES (1, 'Paul', 32, 'California', 20000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")

1 个答案:

答案 0 :(得分:1)

第一点:您应该使用cursor而不是调用不属于db-api2 standardconnection.execute

所以你想要:

conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute(<your ssql statement here>)

第二点:在您提交事务之前,没有任何内容真正写入您的数据库,因此在您需要插入之后:

conn.commit()

请注意all this is very clearly explained in the FineManual有一个完整的例子,所以请先怜悯,先阅读文档

第三点:你的&#34; test.db&#34;无论current working directory是什么,都会查找文件(并最终创建,如果它不存在),所以始终使用绝对路径 - 因为你不能依赖于调用脚本的位置/方式来确保你&# 39;重新使用预期的数据库。