2015-10-21 154 views
0

我想添加雙列的組合中的唯一查詢。我正在使用此功能,但這不能使Unique。請幫忙任何幫助都會有問題。Table not Alter

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

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

要執行更高級的更改,您需要使用新架構創建新表,執行INSERT INTO new_table SELECT * FROM old_table;複製數據,刪除舊錶,然後將新表重命名爲舊名稱。

雖然在這種情況下,您還可以使用CREATE UNIQUE INDEX命令添加唯一索引。