SQLite和Python:表已经存在,没有这样的表

时间:2016-02-17 20:30:00

标签: linux database python-2.7 sqlite

我正在学习 python web programming ,而我正在研究数据库管理。我为数据库写了两个python文件;一个用于创建一个表,另一个用于插入数据。 似乎两个文件正确运行没有任何错误。但是在创建表格并向其插入数据后,当我想选择表格以查看 SQLite 中的结果时,我将面临错误Error: no such table: film电影是我创建的表格。

dbcreate.py

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

dbinsert.py

import sqlite3 as db
conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute('insert into film values("God Father","Francis Ford Copola", "1972")')
cursor.execute('insert into film values("The Shawshank Redemption","Frank Darabont", "1994")')
conn.close()
print "data inserted"

SQLite的

sqlite> select * from film;
Error: no such table: film

是什么原因?

2 个答案:

答案 0 :(得分:0)

感谢所有朋友为我提供帮助解决方案,特别感谢 bernie Murphy 。首先,我犯了一个愚蠢的错误:每次我在bash上调用 sqlite3 时,我都是这样做的:sqlite3 test.db这是在test.db中创建/sqlite3/文件。所以我尝试sqlite3 /path/to/test.db并且它有效。然后我应该.open test.db看看结果。非常感谢你。问题解决了:))

答案 1 :(得分:0)

如果您使用文件名启动CLI,SQLite将只创建一个DB文件(如果它不存在),这将导致您看到的症状(数据库中没有内容)。

.databases说什么?归结为:检查您是否真的,真的已在CLI中附加了正确的DB文件。

(将我的评论的相关部分编译成答案以提供可接受的答案。)