получил странную проблему. У меня есть SQLite таблицу в моей Objective-C приложения:REPLACE INTO sqlite не заменяет
NSString *sql = @"CREATE TABLE IF NOT EXISTS user_results (id INTEGER PRIMARY KEY ASC AUTOINCREMENT, gameID INTEGER UNIQUE, gameDesc TEXT, result INTEGER)";
Затем я выполнить запрос:
[[DatabaseController getInstance].resultsDB executeUpdate:@"REPLACE INTO user_results (gameID, gameDesc, result) VALUES (?, ?, ?)",[NSNumber numberWithInt:self.gameID],[test JSONRepresentation],[NSNumber numberWithInt:sumBalls]];
Но проблема в том, что она не заменяет строку с тем же gameID
, это просто добавляет один (хотя это UNIQUE
), любые идеи, почему это произойдет?
P.S. Я использую FMDB для работы с sqlite.
Заранее спасибо.
Решение: бы использовать [NSNumber numberWithInt:self.gameID].integerValue
вместо при отправке запросов SQL.
Нет, gameID - это UNIQUE-столбец, поэтому REPLACE INTO должен отлично работать и удалять любые строки, которые сделают его не уникальным. –
Это правда. Столбец UNIQUE не должен быть перезаписан, поэтому вместо INSERT следует вызывать REPLACE. –