2

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

注意:当前查询已经使用DROP VIEW IF EXISTS并且不能解决问题。另外,我检查了一下sqlite_master,似乎没有对临时表/视图的任何引用。

4

1 回答 1

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;

临时对象sqlite_temp_master.

于 2013-06-12T08:27:15.533 回答