我有一个函数,只要有新数据库连接到连接,它就会尝试删除视图并重建它。问题(好吧,更多的是烦恼)是它第一次尝试删除不存在的视图。由于有一个与视图同名的永久表,我得到了 sqlite 错误:use DROP TABLE to delete table Albums
. 因此,我想在尝试删除视图之前查询数据库以检查视图是否存在。
注意:当前查询已经使用DROP VIEW IF EXISTS
并且不能解决问题。另外,我检查了一下sqlite_master
,似乎没有对临时表/视图的任何引用。
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;
临时对象在sqlite_temp_master
.