我在將數據插入sqlite表時出現問題,我已閱讀大量帖子,但仍未找到任何解決方案,希望您能幫助我。SQLite插入錯誤「約束失敗」
我的表的定義是:
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有PRIMARY KEY和UNIQUE限制,它應該是不可取的... 任何建議?謝謝。
我的id_user是一個int。 我做了你所說的,它的工作原理!,非常感謝你Control-V! – user740413
當插入多個值時,我正在複製id的。我正在使用SQLITE_MANAGER,無法設置AUTOINCREMENT值,並且它是自動設置的。 – user740413