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

最佳答案

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

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

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

关于ios - 表不可更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33254459/

10-13 03:04