我想在我的表中添加一列。任何人都可以告诉我如何在 Table 中添加列,如果它在 sqlite 更新整个 sqlite 数据库中不存在?
if COLUMNPROPERTY( OBJECT_ID('Customers'),'CLable','Text') is null
begin
alter table Customers add CLable varchar(50) not null
end
没有足够的声誉将其添加为上面的评论,但是...
ALTER TABLE Name ADD COLUMN new_column INTEGER DEFAULT 0
将在 prepare() 步骤中生成错误(不是 SQLITE_OK)——所以忽略它并且不要执行 step():
sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(database, [self.sql UTF8String], -1, &stmt, nil) == SQLITE_OK) {
sqlite3_step(stmt);
}
sqlite3_finalize(stmt);
在 SQLite 中,您无法使用IF NOT EXISTS
...检查列是否存在
您可以简单地检查SELECT col from TABLE
如果它返回错误则列不存在。
或者您可以在应用程序委托中使用标志,例如
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]
}
试试这样,通过使用 ALTER 命令你可以实现这个,
ALTER TABLE Name ADD COLUMN new_column INTEGER DEFAULT 0