我想在表格中添加一个额外的列。 如果在sqlite更新整个sqlite数据库中不存在列,那么有人可以告诉我如何在Table中添加列吗?
if COLUMNPROPERTY( OBJECT_ID('Customers'),'CLable','Text') is null
begin
alter table Customers add CLable varchar(50) not null
end
答案 0 :(得分:4)
没有足够的声誉将其添加为上述评论,但是......
ALTER TABLE Name ADD COLUMN new_column INTEGER DEFAULT 0
将在prepare()步骤中生成错误(不是SQLITE_OK) - 所以只需忽略它并且不执行步骤():
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(database, [self.sql UTF8String], -1, &stmt, nil) == SQLITE_OK) {
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
答案 1 :(得分:2)
在SQLite中,您无法使用IF NOT EXISTS
...
您只需检查SELECT col from TABLE
如果它返回错误,则列不存在。
或者你可以在app delegate中使用一个标志,如
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"isColumnAdded"]) {
//call the query like ALTER TABLE tableName ADD COLUMN columnName TEXT;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isColumnAdded"];
[[NSUserDefaults standardUserDefaults] synchronize]
}
答案 2 :(得分:-3)
尝试这样,通过使用ALTER命令可以实现这一点,
ALTER TABLE Name ADD COLUMN new_column INTEGER DEFAULT 0