美文网首页数据库
FMDB数据库升级——增加表字段

FMDB数据库升级——增加表字段

作者: MMD_ | 来源:发表于2017-11-30 11:07 被阅读1179次
609A875E-A58B-4FFF-9E6E-32ED5AA46C87.png

前言

升级数据库是个很繁琐看似很麻烦的事情,有次面试,面试官问了关于增加字段更新数据库升级的问题,我是这么回答的,我说可以做一个数据库迁移拷贝
,每次更新版本判断一下,面试官表示很不解,为什么要这么复杂化,重复问了好几次,也许在等我更好的答案;

需要在已经存在的表里面新增一个或者多个字段,思路应该是这样的;
先去判断增加的字段是否存在,不存在就去插入:

1
#import "FMDatabaseAdditions.h" // 导入头文件

// 判断
if (![db columnExists:@"需要增加的字段" inTableWithName:@"表名"]){  
          
} 
2

如果不存在,就执行插入操作:

NSString *alertStr = [NSString stringWithFormat:@"ALTER TABLE %@ ADD %@ INTEGER",@"表名",@"新增字段"];  
BOOL worked = [db executeUpdate:alertStr];  
if(worked){
    NSLog(@"插入成功");
}else{
    NSLog(@"插入失败");
}
3

升级顺序如下:

// 获得Documents目录路径
    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    // 文件路径
    NSString *sqlitePath = [NSString stringWithFormat:@"MLChatDataBase%@.sqlite", [MLSettingTool objectForKey:ML_UserId]];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:sqlitePath];

// 实例化FMDataBase对象
    _db = [FMDatabase databaseWithPath:filePath];
    [_db open];
    // 初始化数据表
    NSString *userInfoSql = @"CREATE TABLE IF NOT EXISTS UserInfoData (userId VARCHAR(255) PRIMARY KEY NOT NULL, realName VARCHAR(255),headImg VARCHAR(255),mobile VARCHAR(255))";
    [_db executeUpdate:userInfoSql];

// 判断是否包含表字段
      if (![db columnExists:@"age" inTableWithName:@"UserInfoData"]){  
          NSString *alertStr = [NSString stringWithFormat:@"ALTER TABLE %@ ADD %@ INTEGER",@"UserInfoData",@"age"];  
          BOOL worked = [db executeUpdate:alertStr];  
          if(worked){
                 NSLog(@"插入成功");
          }else{
                  NSLog(@"插入失败");
          }
          } 

     [_db close];

相关文章

  • FMDB

    FMDB 使用方法 - 简书 FMDB数据库升级增加表字段 - CSDN博客

  • Sqlite升级时向已有表中增加字段

    Sqlite升级时向已有表中增加字段 Sqlite数据库升级时,我们经常会遇到给已有表中增加字段的操作。一般来说,...

  • FMDB数据库升级——增加表字段

    前言 升级数据库是个很繁琐看似很麻烦的事情,有次面试,面试官问了关于增加字段更新数据库升级的问题,我是这么回答的,...

  • android SQLite数据库版本升级原理解析

    SQLite数据库保存数据,那数据库版本升级是怎么回事,分为两种情况:A.已存在表中增加字段,B. 新增表 A.已...

  • FMDB 关于数据库升级那些事

    数据库升级在数据库中增加字段 一 表迁移 步骤 旧表改名 2.创建新表 3.迁移旧表数据 4.创建数据迁移成功标记...

  • SQLite数据库--升级数据库最佳操作

    在程序发布以后,若我们再次开发升级了新的版本,此时,若数据库也增加了表或者原有的表需要新增字段,在不删除原数据库的...

  • Android GreenDao数据库升级操作

    使用场景 版本升级后,增加表、删除表、增加字段、删减字段等。为了保留原始数据,需要将数据进行迁移。使用GreenD...

  • Mysql常用命令

    基础操作 创建数据库 删除数据库 创建表 删除表 插入数据 查询数据及函数处理 修改数据 增加字段 删除字段 复制...

  • OrmLite 数据库升级

    一下只是简单的介绍一下OrmLite 数据库的升级用法 在我们开发的过程中,难免会因为增加字段,或者增加新表,从而...

  • Android使用realm数据库升级(跨版本兼容),迁移最佳解

    什么时候需要进行数据库版本升级? 与SQLite类似,在数据表的结构需要修改的时候(例如:增加新的字段),需要进行...

网友评论

    本文标题:FMDB数据库升级——增加表字段

    本文链接:https://www.haomeiwen.com/subject/zitvbxtx.html