我有一个函数,当新数据库连接到连接时,它会尝试删除视图并重建它。问题(嗯,更令人烦恼)是它第一次尝试删除不存在的视图。由于存在与视图同名的永久表,因此我得到sqlite错误:use DROP TABLE to delete table Albums
。因此,我想在尝试删除它之前查询数据库以检查视图是否存在。
注意:当前查询已使用DROP VIEW IF EXISTS
,但无法解决问题。此外,我检查了sqlite_master
,似乎没有任何对临时表/视图的引用。
答案 0 :(得分:2)
main
和temp
数据库是不同的,因此您只需使用数据库名称:
CREATE TABLE Albums(x);
CREATE TEMPORARY VIEW Albums AS SELECT * FROM Albums;
DROP VIEW IF EXISTS temp.Albums;
DROP VIEW IF EXISTS temp.Albums;