【发布时间】:2014-01-19 03:29:28
【问题描述】:
在我的应用中,我使用的是FMDatabase。我正在尝试将新的column 添加到现有的table,然后在该列中添加insert 数据。当我通过Alter Table 添加列时,我没有收到任何错误,但是当我尝试在表中插入数据时,我收到错误,抱怨新添加的列不存在。
这是我的代码
NSString *databasePath = [myDB getPlacesDBPath];
FMDatabase *db = [FMDatabase databaseWithPath:databasePath];
if (![db open])
{
return ;
}
if (![db columnExists:@"placeName" inTableWithName:@"MYPLACES"])
{
[db executeQuery:@"ALTER TABLE MYPLACES ADD COLUMN placeName TEXT"];
// I tried to set the result of this query in "BOOL Success" and print the results and I got YES
}
//Note: I have more than 12 columns but I didn't post all of them here
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO MYPLACES ( placeID , placeName) VALUES (\"%@\", \"%@\")", placeIDValue, placeNameValue ];
[db executeUpdate:insertSQL];
if ([db hadError]) {
NSLog(@"error : %@",[db lastError]);
}
[db close];
我收到以下错误:
error : Error Domain=FMDatabase Code=1 "table MYPLACES has no column named placeName" UserInfo=0xe340920 {NSLocalizedDescription=table MYPLACES has no column named placeName}
有什么问题?如何知道为什么没有添加新列?
【问题讨论】:
标签: objective-c sqlite fmdb