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];
        }];
    }
  • 相关阅读:
    Static了解和复习继承。
    复习篇1.对象和封装
    第一章笔记
    A + B Problem II
    Number Sequence
    Fibonacci Again
    8615 快乐
    8635 气球
    大牛之路II
    8617 阶乘数字和
  • 原文地址:https://www.cnblogs.com/junwang/p/3467185.html
Copyright © 2011-2022 走看看