如何在SQLite中列出临时表/视图?

时间:2013-06-11 22:45:37

标签: c++ c sqlite

我有一个函数,当新数据库连接到连接时,它会尝试删除视图并重建它。问题(嗯,更令人烦恼)是它第一次尝试删除不存在的视图。由于存在与视图同名的永久表,因此我得到sqlite错误:use DROP TABLE to delete table Albums。因此,我想在尝试删除它之前查询数据库以检查视图是否存在。

注意:当前查询已使用DROP VIEW IF EXISTS,但无法解决问题。此外,我检查了sqlite_master,似乎没有任何对临时表/视图的引用。

1 个答案:

答案 0 :(得分:2)

maintemp数据库是不同的,因此您只需使用数据库名称:

CREATE TABLE Albums(x);
CREATE TEMPORARY VIEW Albums AS SELECT * FROM Albums;
DROP VIEW IF EXISTS temp.Albums;
DROP VIEW IF EXISTS temp.Albums;

临时对象are managed in sqlite_temp_master