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];
        }];
    }
  • 相关阅读:
    BZOJ 3144 [Hnoi2013]切糕
    一场比赛:20170707
    BZOJ 2815 [ZJOI2012]灾难
    BZOJ 1088 [SCOI2005]扫雷Mine
    BZOJ 1052 [HAOI2007]覆盖问题
    BZOJ 3505 [Cqoi2014]数三角形
    BZOJ 2957 楼房重建
    BZOJ 2654 tree
    丁酉年六月十一ACM模拟赛
    BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑
  • 原文地址:https://www.cnblogs.com/junwang/p/3467185.html
Copyright © 2011-2022 走看看