为什么总是必须运行数据插入语句以将数据插入到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 )")
答案 0 :(得分:1)
第一点:您应该使用cursor
而不是调用不属于db-api2 standard的connection.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;重新使用预期的数据库。