2014-01-29 19 views

回答

2

的SQLite允許編輯視圖通過對視圖創建觸發器: http://www.sqlite.org/lang_createtrigger.html#instead_of_trigger

視圖是不是默認編輯,因爲它是很難預測該視圖的列是真的編輯(涉及到表列)並沒有(它們是常量或表達式)。例如,您可以查看哪個選擇:

SELECT 'test', 456, substr(col, 2), col FROM table 

在這種情況下,只有最後一列對編輯有意義。

有時候,你知道,你可以編輯一些表達,因爲表達的是這兩種方式可轉換,例如:

SELECT hex(col) FROM table 

對於這樣的列,您可以轉換回十六進制表示爲二進制值,當用戶編輯並輸入一個十六進制值。

這個和更多的情況是可能的,所以這讓開發人員能夠實現適當的編輯算法,以瞭解關於編輯視圖列的最佳知識。