iOS-FMDB 更新数据库表结构

接上一篇增删改查:
http://blog.csdn.net/sinat_30162391/article/details/49622841

这一篇介绍更新表结构, 实际就是一些sql语句 balabala

// 创建数据库
- (FMDatabase *)db{
    if (_db == nil) {
        _db = [FMDatabase databaseWithPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"StaffPosition.db"]];
    }
    return _db;
}
// 创建表
    if ([self.db open]) {
        if ([_db tableExists:@"summerxx"]) {
            NSLog(@"不进行创建");
        }else{
            BOOL res = [_db executeUpdate:@"create table summerxx (name text, age text)"];
            if (res == YES) {
                NSLog(@"创建表成功");

            }else{
                NSLog(@"创建表失败");
            }
        }
    }
    // 插入数据
    if ([_db open]) {
        BOOL res = [_db executeUpdate:@"insert into summerxx (name, age) values (?, ?)", @"summerxx", @"22"];
        if (res == YES) {
            NSLog(@"插入数据成功");
        }else{
            NSLog(@"插入数据失败");
        }
    }
    // 新增字段
    if ([_db open]) {
        [_db executeUpdate:@"ALTER TABLE summerxx ADD COLUMN hibbit text"];
        BOOL res = [_db executeUpdate:@"ALTER TABLE summerxx ADD COLUMN height text"];
        if (res == YES) {
            NSLog(@"修改表成功");
        }else{
            NSLog(@"修改表失败");
        }
    }
    // 把原表重新命名为临时表
    if ([_db open]) {
        BOOL res = [_db executeUpdate:@"ALTER TABLE summerxx RENAME TO __temp__summerxx"];
        if (res == YES) {
            NSLog(@"修改成临时表成功");
        }else{
            NSLog(@"失败");
        }
    }
    // 创建新表
    if ([self.db open]) {
        if ([_db tableExists:@"summerxx"]) {
            NSLog(@"不进行创建");
        }else{
            BOOL res = [_db executeUpdate:@"create table summerxx (name text, age text, hibbit text, height text)"];
            if (res == YES) {
                NSLog(@"创建表成功");

            }else{
                NSLog(@"创建表失败");
            }
        }
    }
    // 把临时表数据插入新表
    if ([self.db open]) {
            BOOL res = [_db executeUpdate:@"INSERT INTO summerxx SELECT name, age, hibbit, height FROM __temp__summerxx"];
            if (res == YES) {
                NSLog(@"成功");

            }else{
                NSLog(@"失败");
            }
    }
    // 删除临时表
    [self.db open];
    // DROP TABLE __temp__summerxx
    [_db executeUpdate:@"DROP TABLE __temp__summerxx"];

还可以关注我的订阅号 [夏天然后 ID: xt1005430006]

夏天然后

你可能感兴趣的:([sqlite],Objective-C成长之路,数据库,FMDB,iOS,sqlite)