SQLite复杂表的更新方式
在SQLite中,如果早期设计的表无法满足需要,就需要对表进行更新,如修改名字、添加列。如果针对简单表,修改起来相对容易,直接使用提供的ALTER命令即可。但是如果该表与视图、触发器、索引有关联,处理起来就相对繁琐一些。下面讲解这类表的修改方式。
(1)使用以下命令,备份视图、触发器的SQL脚本。
SELECT sql FROM main.sqlite_master WHERE type='view' or type='trigger'
(2)关闭外键约束。
PRAGMA foreign_keys=OFF
(3)删掉关联的视图、触发器和触发器。
DROP 视图名
DROP 触发器名
DROP 索引名
(4)打开外键约束。
PRAGMA foreign_keys=ON
(5)修改表结构。
(6)修改备份的视图、触发器SQL脚本,并重新构建对应的视图和触发器。重新构建索引。