SQLite复杂表的更新方式

Posted 大学霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite复杂表的更新方式相关的知识,希望对你有一定的参考价值。

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脚本,并重新构建对应的视图和触发器。重新构建索引。

 

以上是关于SQLite复杂表的更新方式的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3 视图影响性能?

Flutter,具有许多表的复杂 SQLite DB,这是最佳实践吗?

在 Android 中返回 SQLite 表的所有列

慢更新查询 SQLite

Sqlite的多表连接更新

sql SQLite不支持更新查询中的联接,这使得在基于多个选项卡中的信息进行更新时出现一些复杂性