我在将数据插入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