2012-02-04 12 views
0

私は基本的に新しいデータベースを作成し、以下に従ってデータベース値入力しようとしています:sqlite3.OperationalError:いいえ、そのようなテーブル:main.wordlistエラー

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 Error "が出ています。私はなぜそれが検索データベースを検出することができないか分からない。それは少なくともライブコンパイラから実行する必要があります。私はなぜそれが正しく動作しているのかわかりません。誰も助けることができますか?

答えて

0

タイプミスによるかもしれません:二行目に変更、 その場合:?wordlistことになっworldlist

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)') 

を実行してみてください。あなたは、このコードとあなたのものとの違いを比較しようとします。

+0

それは私が最初に思ったものですが、私はそれを改善するすべての方法を試しましたが、実際にはうまくいきませんでした。私はその時点でオプションがありません –

関連する問題