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 回答