表不是改变

时间:2015-10-21 08:31:31

标签: ios objective-c sqlite

我想在两列的组合中添加唯一查询。我正在使用它,但这不能使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);

1 个答案:

答案 0 :(得分:1)

SQLite的支持非常有限ALTER TABLE;它支持的唯一更改是ADD COLUMNRENAME

要执行更高级的更改,您需要使用新架构创建一个新表,执行INSERT INTO new_table SELECT * FROM old_table;复制数据,删除旧表,然后将新表重命名为旧名称。< / p>

虽然在这种情况下,您也可以使用CREATE UNIQUE INDEX命令添加唯一索引。