sqlite3.OperationalError:没有这样的表:main.wordlist错误

时间:2012-02-04 19:08:34

标签: python

我基本上是在尝试创建一个新数据库并根据以下内容输入数据库值:

 def createindextables(self):
    self.con.execute('create table urllist(url)')
    self.con.execute('create table worldlist(word)')
    self.con.execute('create table wordlocation(urlid,wordid,location)')
    self.con.execute('create table link(fromid integer,toid integer)')
    self.con.execute('create table linkwords(wordid,linkid)')
    self.con.execute('create index wordidx on wordlist(word)')
    self.con.execute('create index urlidx on urllist(url)')
    self.con.execute('create index wordurlidx on wordlocation(wordid)')
    self.con.execute('create index urltoidx on link(toid)')
    self.con.execute('create index urlfromidx on link(fromid)')
    self.dbcommit()

但是在运行它时“sqlite3.OperationalError:没有这样的表:main.wordlist错误”即将出现。我不确定为什么它无法检测到搜索数据库。它至少应该从实时编译器运行。我不知道为什么它不能正常工作。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

可能是一个错字:worldlist应该是wordlist?: 如果是这样,请将第二行更改为:

self.con.execute('create table wordlist(word)')

(否则,行

self.con.execute('create index wordidx on wordlist(word)')

可能会引发错误,因为wordlist尚未定义。


正如理智检查一样,您可以尝试运行

import sqlite3
connection = sqlite3.connect(':memory:')
cursor = connection.cursor()
cursor.execute('create table urllist(url)')
cursor.execute('create table wordlist(word)')

此代码应该有效。然后,您可以尝试比较此代码的不同之处。