在项目应用中,已经创建好的数据库,难免涉及到新增列的问题,但是在加入列之前要做个判断,该是否已经存在,要不执行数据库会报错!另附删除列的操作……
1、新增列的代码:[db executeUpdate:@"alter table 表名 add 列名 数据类型"]
2、检查表中是否存在该列:
FMResultSet * result = [db executeQuery:@"select * from 表名"];
第一种方法:
if([result columnIndexForName:@"列名"]==-1)
{
NSLog(@"该列不存在");
}
for (int i=0; i<[result columnCount]; i++) {
NSString * columnName = [result columnNameForIndex:i];
if ([columnName containsString:@"列名"]) {
NSLog(@"该列存在");
}
}
NSDictionary * dict = [result columnNameToIndexMap];//获取到该表下的所有列,及对应的index索引
if (dict) {
for (NSString * keystr in [dictallKeys]) {
if ([keystr containsString:@"列名"]) {
NSLog(@"该列存在");
}
}
}
if([db executeUpdate:@"create table sss as select create_time,deleted,definition from course"]) {
[db executeUpdate:@"drop table course"];
[db executeUpdate:@"alter table sss rename to course"];
}