2011-12-31 34 views
1

我有管理文件的數據庫。有多個的原因是他們住在不同的驅動器上(想想USB驅動器)。我想編寫適用於所有驅動器上的文件的查詢。問題是,我無法取消視圖以使用另一個數據庫(正在使用它)重新創建它。因此,我想知道是否有辦法編寫一個視圖來合併來自.databases的每個數據庫中具有相同名稱的所有表?這樣,當附加一個新的數據庫時,我不必去掉視圖。我可以創建一個SQLite視圖UNIONING所有數據庫嗎?

也許作爲最接近的答案,是否可以在ATTACH上編寫觸發器並讓觸發器重新創建視圖(以便至少將停機時間降至最低)?

+0

請定義「取下視圖」的含義。 – 2011-12-31 02:49:32

+0

意思是說,你不得不放棄它,或者改變它。無論哪種方式,表格在一段時間內都無法使用。 – chacham15 2011-12-31 03:00:33

回答

0

SQLite不支持任何我知道的「附加」觸發器,只能刪除,插入和更新。

你想要做的事可能是你的程序最好完成,而不是SQLite本身。您可以隨時在自己的代碼中手動刪除並重新創建視圖(因爲視圖無法修改,因此必須進行修改)。當然,這需要一個鎖定(使表格不能像你所說的那樣),但即使SQLite爲你工作,這可能也是必要的。

無論哪種方式,視圖創建速度都非常快,所以它不應該影響程序的性能。

相關問題