SQLite復(fù)雜表的更新方式
在SQLite中,如果早期設(shè)計(jì)的表無法滿足需要,就需要對(duì)表進(jìn)行更新,如修改名字、添加列。如果針對(duì)簡(jiǎn)單表,修改起來相對(duì)容易,直接使用提供的ALTER命令即可。但是如果該表與視圖、觸發(fā)器、索引有關(guān)聯(lián),處理起來就相對(duì)繁瑣一些。下面講解這類表的修改方式。
(1)使用以下命令,備份視圖、觸發(fā)器的SQL腳本。
SELECT ?sql FROM ?main.sqlite_master WHERE type='view' or type='trigger'
(2)關(guān)閉外鍵約束。
PRAGMA foreign_keys=OFF
(3)刪掉關(guān)聯(lián)的視圖、觸發(fā)器和觸發(fā)器。
DROP 視圖名
DROP 觸發(fā)器名
DROP 索引名
(4)打開外鍵約束。
PRAGMA foreign_keys=ON
(5)修改表結(jié)構(gòu)。
(6)修改備份的視圖、觸發(fā)器SQL腳本,并重新構(gòu)建對(duì)應(yīng)的視圖和觸發(fā)器。重新構(gòu)建索引。