は奇妙な問題を抱えて代わるものではありません。それはちょうど、sqliteのINTO REPLACEは、
[[DatabaseController getInstance].resultsDB executeUpdate:@"REPLACE INTO user_results (gameID, gameDesc, result) VALUES (?, ?, ?)",[NSNumber numberWithInt:self.gameID],[test JSONRepresentation],[NSNumber numberWithInt:sumBalls]];
しかし、問題は、それは同じgameID
で行を置き換えるものではありませんということです。
NSString *sql = @"CREATE TABLE IF NOT EXISTS user_results (id INTEGER PRIMARY KEY ASC AUTOINCREMENT, gameID INTEGER UNIQUE, gameDesc TEXT, result INTEGER)";
それから私は、クエリを実行します。私は私のObjective-Cのアプリでsqliteのテーブルを持っています1つを追加します(それはUNIQUE
ですが)、なぜそれが起こるでしょうか?
P.S. FMDBを使ってsqliteを操作しています。
ありがとうございます。
ソリューション: の代わりにを使用しなければなりませんでした。
いや、gameIDはすでにUNIQUE列なので、INTOが正常に動作し、それが非ユニークになるだろう任意の行を削除する必要がありREPLACE。 –
それは本当です。 UNIQUE列を上書きしないでください。INSERTの代わりにREPLACEを呼び出す必要があります。 –