我有以下python代码在sqlite3数据库中创建临时表。我已经通过运行“ DB Browser Sqlite”中的代码测试了sql代码是否可以正常工作。但是,由于某种原因,python代码无法成功创建临时表。代码有什么问题?
我正在使用python v3.6
import sqlite3
db_pathname = "db.sqlite3"
sqlite_conn = sqlite3.connect(db_pathname)
sqlite_cur = sqlite_conn.cursor()
sqlite_cur.execute('''
CREATE TEMPORARY TABLE latest_info AS
SELECT * from infos t
WHERE
t.date_p =
(SELECT MAX(date_p) from infos t1
WHERE t1.info_id = t.info_id
)
'''
)
sqlite_conn.commit()
sqlite_conn.close()
答案 0 :(得分:2)
由于create和table之间的临时关键字,在关闭连接后,Table消失了。
尝试删除它,该表将保留。
类似这样的东西
import sqlite3
db_pathname = "db.sqlite3"
sqlite_conn = sqlite3.connect(db_pathname)
sqlite_cur = sqlite_conn.cursor()
sqlite_cur.execute('''
CREATE TABLE latest_info AS <-- there, no more TEMPORARY
SELECT * from infos t
WHERE
t.date_p =
(SELECT MAX(date_p) from infos t1
WHERE t1.info_id = t.info_id
)
'''
)
sqlite_conn.commit()
sqlite_conn.close()