2013-06-11 51 views
2

我有一個函數,試圖刪除一個視圖,並重新創建一個新的數據庫連接到連接。這個問題(嗯,更多的煩惱)是它第一次嘗試刪除一個不存在的視圖。由於有一個與視圖名稱相同的永久表,我得到了sqlite錯誤:use DROP TABLE to delete table Albums。因此,我想查詢數據庫以在嘗試刪除之前檢查視圖是否存在。如何在SQLite中列出臨時表/視圖?

注意:當前查詢已經使用DROP VIEW IF EXISTS並且不能解決問題。此外,我檢查了sqlite_master,似乎沒有任何對臨時表/視圖的引用。

回答

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