我想在两列的组合中添加唯一查询。我正在使用它,但这不能使Unique。请帮助任何帮助都会得到解决。
updateSQL = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS NewsData (id INTEGER PRIMARY KEY AUTOINCREMENT,NewsId TEXT ,NewsValue TEXT,Title TEXT,Region INTEGER)"];
update_stmt = [updateSQL UTF8String];
sqlite3_prepare_v2(database, update_stmt, -1, &addStatement, NULL);
sqlite3_step(addStatement);
sqlite3_reset(addStatement);
updateSQL = [NSString stringWithFormat:@"ALTER TABLE NewsData ADD UNIQUE (NewsId, Region)"];
update_stmt = [updateSQL UTF8String];
sqlite3_prepare_v2(database, update_stmt, -1, &addStatement, NULL);
sqlite3_step(addStatement);
sqlite3_reset(addStatement);
答案 0 :(得分:1)
SQLite的支持非常有限ALTER TABLE
;它支持的唯一更改是ADD COLUMN
和RENAME
。
要执行更高级的更改,您需要使用新架构创建一个新表,执行INSERT INTO new_table SELECT * FROM old_table;
复制数据,删除旧表,然后将新表重命名为旧名称。< / p>
虽然在这种情况下,您也可以使用CREATE UNIQUE INDEX
命令添加唯一索引。