В моем приложении я использую 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}
В чем проблема? как узнать, почему новый столбец не добавляется?