zoukankan      html  css  js  c++  java
  • iOS 更新增加数据库字段

    在iOS中新版本更新涉及字段改动时有发生,为保留原有数据完成数据更新,可以采用一下代码

    - (void)alterItemTableToAddFilterColumnsIfNeeded {
        [self alterItemTableToAddFilterColunm:@"Color"];
        [self alterItemTableToAddFilterColunm:@"FashionStyle"];
        [self alterItemTableToAddFilterColunm:@"Category"];
    }
    
    - (void)alterItemTableToAddFilterColunm:(NSString *)columnName {
        //没有添加该列则修改添加
        if (![self checkFilterColumnExists:columnName]) {
            [self alterItemTableToAddColumn:columnName];
        }
    }
    
    - (BOOL)checkFilterColumnExists:(NSString *)columnName {
        __block BOOL returnBool = NO;
        
        [_queue inDatabase:^(FMDatabase *db) {
            [db open];
    
            FMResultSet *resultSet = [db executeQuery:[NSString stringWithFormat:@"PRAGMA table_info(%@)", @"Item"]];
            NSMutableArray* columnNames = [[NSMutableArray alloc] init];
            while ([resultSet next]) {
                if ([[resultSet stringForColumn:@"name"] isEqualToString: columnName]) {
                    returnBool = YES;
                    break;
                }
            }
            [db close];
        }];
        
        return returnBool;
    }
    
    - (void)alterItemTableToAddColumn:(NSString *)columnName {
        NSString *alterSql = [NSString stringWithFormat:@"ALTER TABLE Item ADD COLUMN %@ TEXT DEFAULT ''", columnName, nil];
        
        [_queue inDatabase:^(FMDatabase *db) {
            [db open];
    
            if ([db executeUpdate:alterSql]) {
                NSLog(@"Alter Item Filter Success!");
            } else {
                NSLog(@"Alter Item Filter Error!");
            }
            
            [db close];
        }];
    }
  • 相关阅读:
    Linux中常用操作命令
    JQuery Each循环遍历每个元素
    get set
    Launch Screen在iOS7/8中的实现
    程序猿必备的Git教程
    浏览器的工作原理:新式网络浏览器幕后揭秘
    浏览器的工作原理:新式网络浏览器幕后揭秘
    游览器中javascript的执行过程
    游览器中javascript的执行过程
    浅析 Cordova for iOS
  • 原文地址:https://www.cnblogs.com/junwang/p/3467185.html
Copyright © 2011-2022 走看看