为什么我突然收到“ OperationalError:没有这样的表”?


问题内容

我正在尝试对数据库执行各种操作。我已成功连接并拉出数据,并成功拉出数据。我一直在调试其他问题,然后突然无法再从数据库表中获取任何内容-我收到“
OperationalError:没有这样的表:文章”。

我真的很在这里-这工作得很好,我没有问题地查询数据库并插入数据,等等。然后突然我得到了这个错误。我在错误开始出现之前立即进行的更改似乎完全无关-
我取消了它们,但仍然收到此错误。这是我收到错误的脚本的开头:

import sqlite3

database='mydatabase'
db=sqlite3.connect(database)
c=db.cursor()

sql_command='SELECT id FROM article'
idlist=c.execute(sql_command)

我可以在SQLite Administrator中打开该数据库,并验证该表是否在那里。再加上它以前工作过。我还尝试通过以下方式验证该表是否在其中:

>>c.execute('select name from sqlite_master where type="table"').fetchall()
[]

所以真的很古怪。

我也尝试关闭并重新打开数据库连接和游标。并关闭Python会话。没有骰子。救命!


问题答案:

您是否将代码移到了另一个地方?

因为sqlite将数据库存储到文件中,所以在调用connect时,如果'mydatabase'存在名称相同的文件,则将其加载。将自动创建一个新的新数据库文件。

搜索带有名称的旧文件,'mydatabase'并将其放入代码中。