转载自: https://blog.csdn.net/georgehenrywilliam/article/details/52809170
最近公司的1.3版本,需要在数据库的一个表单中添加一个字段,但是之前的版本已经上架,考虑到已经在使用该App应用的老客户以及还没有使用准备下载安装app的新用户,必须考虑到数据库更新的问题。
所做的代码如下
//如果是已经有我的应用的老客户,直接修改
if (![_databasecolumnExists:@"lastMsgType"inTableWithName:TABLE_RECENT_SESSION] &&[_databasetableExists:TABLE_RECENT_SESSION] ) {
NSString * sql = [NSStringstringWithFormat:@"ALTER TABLE %@ ADD COLUMN %@ integer",TABLE_RECENT_SESSION,@"lastMsgType"];
BOOL ret =[_databaseexecuteUpdate:sql];
if (ret!=YES) {
NSLog(@"修改数据库失败");
}
}
//如果正准备下载我的应用的新客户,直接创建就好了
CREATE TABLE IF NOT EXISTS %@ (ID text UNIQUE,avatar text, type integer, lastMsgType integer ,name text,updated real,isshield integer,users Text , unreadCount integer, lasMsg text , lastMsgId integer, draft text , drafttime real)",TABLE_RECENT_SESSION]
//关于FMDB的一些方法
- (BOOL)columnExists:(NSString*)columnName inTableWithName:(NSString*)tableName//判断数据库中的某个表单是否存在mou ge zi du a
- (BOOL)tableExists:(NSString*)tableName //判断数据库中是否有某个表单
http://www.jianshu.com/p/67afbcf32808事务的用法