如果不存在,请将列添加到表中

时间:2014-07-01 20:59:46

标签: sqlite

如果此列尚不存在,我在向SQLITE表添加新列时遇到问题。

我已尝试使用此代码,但我不知道为什么它不会执行:

IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'mytable' AND COLUMN_NAME = 'mynewcolumn')
BEGIN
    ALTER TABLE mytable ADD COLUMN mynewcolumn TEXT    
END

我收到异常错误:

  

错误:接近" IF":语法错误

2 个答案:

答案 0 :(得分:1)

要测试列是否存在,请执行PRAGMA table_info并检查列名是否出现在结果中。

答案 1 :(得分:1)

这是我选择的解决方案:

1-我做PRAGMA table_info:

pragma table_info(MyTable)

此命令提供有关表的所有列的所有信息。每一行都与列的信息相对应。 此命令返回一个包含4列的输出表: cid 名称类型 notnull dft值 pk

2-我读了“PRAGMA table_info(MyTable)”中的所有行,并将列“name”与我想要的列名称进行比较检查是否存在。

3-如果列存在,那么我什么都不做

4-但是如果列不存在那么,在这里我使用这个commade将列添加到我的表中:

ALTER TABLE MyTable ADD COLUMN NewColumn TEXT;

这对我有用,并且正确地完成工作。