0

我将如何执行这样的查询?这是一个添加新列的示例查询。

ALTER TABLE [users] ADD COLUMN [description] VARCHAR(255) NOT NULL DEFAULT ''

每当再次执行该查询时,都会产生以下错误。

SQLiteManager:可能的 SQL 语法错误:ALTER TABLE [users] ADD COLUMN [description] VARCHAR(255) NOT NULL DEFAULT '' [重复列名:描述] 异常名称:NS_ERROR_FAILURE 异常消息:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [ mozIStorageConnection.createStatement]

如果可能的话,我想消除这个错误。例如,以下查询在多次执行时不会产生任何错误。

CREATE TABLE IF NOT EXISTS [users] ([id_users] INTEGER PRIMARY KEY AUTOINCREMENT)

但是 SQLite 在查询开始时不支持 IF 条件,所以我几乎不知道该怎么做。我也尝试过使用 CASE 表达式,但失败了。任何帮助是极大的赞赏。

4

1 回答 1

2

ALTER TABLE使用单个语句是不可能做到这一点的。

您可以使用另一个命令(如PRAGMA table_info(users))检查该列是否存在。

于 2013-07-14T13:12:11.827 回答