2015-10-21 5 views
0

Я хочу добавить уникальный запрос в сочетании двух столбцов. Я использую это, но это не может сделать Unique. Пожалуйста, помогите Любая помощь будет apperciated.Таблица не 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 COLUMN и RENAME.

Чтобы выполнить более сложные изменения, вам нужно будет создать новую таблицу с новой схемой, сделайте INSERT INTO new_table SELECT * FROM old_table;, чтобы скопировать данные, отбросить старую таблицу и переименовать новую таблицу в старое имя.

Хотя в этом случае вы также можете добавить уникальный индекс, используя команду CREATE UNIQUE INDEX.

Смежные вопросы