如果此列尚不存在,我在向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":语法错误
答案 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;
这对我有用,并且正确地完成工作。