@yanzhiwei147
2015-03-09T06:29:09.000000Z
字数 1402
阅读 1257
设计
数据库
userVersion
方法),而不使用创建新表的形式[3];
> PRAGMA user_version;
> PRAGMA user_version = 1;
user_version
的升级体系,使用xml文件进行版本追踪。[4];重命名表
、新增列
; columnExists:inTableWithName:
方法ALTER TABLE table ADD COLUMN new_column TEXT;
ALTER TABLE old_table RENAME TO new_table
X->X
) 表X
的所有索引以及触发器相关信息:SELECT type, sql FROM sqlite_master WHERE tbl_name='X'
CREATE TABLE
语句创建表new_X
表X
迁移内容到表new_X
使用类似语句:INSERT INTO new_X SELECT ... FROM X.
PRAGMA foreign_keys=OFF;
表X
:DROP TABLE X;
表new_X
到表X
:ALTER TABLE new_X RENAME TO X;
CREATE INDEX
与CREATE TRIGGER
重建索引以及触发器关系,参考步骤一中持有的原关系进行改造。PRAGMA foreign_key_check
验证该模型没有打破原有外键关系后执行PRAGMA foreign_keys=ON
来重新启用外键约束表X
因为模型改变被影响到则使用DROP VIEW
并重建它们int
、unsigned int
、long
、unsigned long
、long long
、unsigned long long
、short
、unsigned short
、bool/BOOL
、doble
、float
、支持的基础类型enum
、char
、unsigned char
、NSObject/id及其子类
结构体
、union
、函数指针
、基础类型指针如int *