이상한 문제가 발생했습니다.sqlite가 바뀌지 않습니다.
NSString *sql = @"CREATE TABLE IF NOT EXISTS user_results (id INTEGER PRIMARY KEY ASC AUTOINCREMENT, gameID INTEGER UNIQUE, gameDesc TEXT, result INTEGER)";
가 그럼 난 쿼리를 실행합니다 : 내 목표 - C 응용 프로그램에서 SQLite는 테이블이
[[DatabaseController getInstance].resultsDB executeUpdate:@"REPLACE INTO user_results (gameID, gameDesc, result) VALUES (?, ?, ?)",[NSNumber numberWithInt:self.gameID],[test JSONRepresentation],[NSNumber numberWithInt:sumBalls]];
을 그러나 문제는이 같은 gameID
으로 행을 대체하지 않습니다, 그것은 단지 1을 추가합니다 (비록 그것이 UNIQUE
임), 어떤 아이디어가 발생합니까?
P. FMDB를 사용하여 sqlite를 사용하고 있습니다.
미리 감사드립니다.
솔루션 :는 SQL 쿼리를 보낼 때 [NSNumber numberWithInt:self.gameID]
대신 [NSNumber numberWithInt:self.gameID].integerValue
를 사용했다.
는 아니, 게임 ID는 고유 한 열이 이미 있으므로 INTO가 잘 작동하고 고유하지 않은 만들 것 행을 삭제해야 REPLACE입니다. –
사실입니다. UNIQUE 열을 덮어 써서는 안되기 때문에 INSERT 대신 REPLACE를 호출해야합니다. –