sqliteテーブルにデータを挿入するときに問題が発生しましたが、多くの投稿を読みましたが、解決策が見つかりませんでした。SQLiteの挿入エラー "Constraint Failed"
私のテーブルの定義は次のとおりです。
CREATE TABLE "forum_topics" ("id" INTEGER (11) PRIMARY KEY NOT NULL UNIQUE DEFAULT 1, "id_user" INTEGER (11) NOT NULL DEFAULT 0, "title" TEXT NOT NULL DEFAULT None, "description" TEXT NOT NULL DEFAULT None)
次の関数を実行するとき、私はその問題を持っています:
- (void)addTopic{
if (addStmt == nil) {
const char *sql = "INSERT INTO forum_topics (id_user, title, description) VALUES (?, ?, ?)";
if (sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK) {
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
}
sqlite3_bind_int(addStmt, 1, id_user);
sqlite3_bind_text(addStmt, 2, [title UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 3, [desc UTF8String], -1, SQLITE_TRANSIENT);
if (SQLITE_DONE != sqlite3_step(addStmt)) {
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
else {
self._id = sqlite3_last_insert_rowid(database);
}
sqlite3_reset(addStmt);
sqlite3_finalize(addStmt);
addStmt = nil;
}
まあ、私はまた、テーブルのID列を結合強制しようとしましたidにがあるという事実にもかかわらず、クラッシュしなかった。プライマリキーとユニークの制約とそれは設定不可能であるはずです... 何か提案がありますか?ありがとうございました。
私のid_userはintです。 私はあなたが言ったことをした、それは動作します!、非常にコントロール - Vをありがとう! – user740413
2つ以上の値を挿入するときに、IDを複製していました。私はSQLite_MANAGERを使用していて、AUTOINCREMENT値を設定することができず、自動的に設定されました。 – user740413