0

私はPythonを使用してSQLiteのあるテーブル(辞書)を別のテーブル(origin_dictionary)にコピーしています。この部分のコードは次のとおりです。

    def copyDictionaryToOrigin(self):
    dropTableQueryStr = "DROP TABLE IF EXISTS origin_dictionary"
    createTableQueryStr = "CREATE TABLE origin_dictionary (id INTEGER PRIMARY KEY AUTOINCREMENT, word TEXT, type TEXT)"
    syncTableQueryStr = "INSERT INTO origin_dictionary (word, type) SELECT word, type FROM dictionary"

    self.cur.execute(dropTableQueryStr)
    self.cur.fetchone()

    self.cur.execute(createTableQueryStr)
    result = self.cur.fetchone()

    self.cur.execute(syncTableQueryStr)
    result = self.cur.fetchone()

このコードを実行すると、origin_dictionaryテーブルが作成されていることがわかりますが、テーブルにデータがありません。データが新しいテーブルにコピーされなかった理由を見つけることができませんでした。誰かがこれを手伝ってくれませんか?

4

1 に答える 1

1

あるテーブルを別のテーブルに単純にコピーする必要がある場合は、使用してみませんCREATE TABLE ... AS SELECTか?また、あなたはcommit()あなたの声明をする必要があります。

以下のコードを使用するだけで、機能するはずです。

import sqlite3
conn = sqlite3.connect(example.db")
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS origin_dictionary")
cur.execute("CREATE TABLE origin_dictionary AS SELECT * FROM dictionary")
conn.commit()
conn.close()
于 2012-12-11T10:42:08.477 に答える