【问题标题】:check if a column exists before altering the table在更改表之前检查列是否存在
【发布时间】:2013-07-14 21:12:11
【问题描述】:

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

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

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

SQLiteManager:可能的 SQL 语法错误:ALTER TABLE [users] ADD COLUMN [描述] 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 表达式,但失败了。非常感谢任何帮助。

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    使用单个 ALTER TABLE 语句无法做到这一点。

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

    【讨论】:

    • 感谢您的回复。我会接受这个,因为没有其他人回复。
    猜你喜欢
    • 2011-01-22
    • 2019-12-23
    • 2011-11-21
    • 1970-01-01
    • 2020-11-16
    • 2012-01-03
    • 2020-08-04
    • 2012-03-22
    • 1970-01-01
    相关资源
    最近更新 更多