2014-07-01 79 views
0

如果此列尚不存在,則需要將新列添加到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 

我得到一個異常錯誤:

error: near "IF": syntax error

+0

從標題中刪除'(SQLITE)' – Rahul

回答

0

這是我選擇的解決方案:

1 - 我做PRAGMA table_info:

pragma table_info(MyTable) 

此命令提供了有關表的所有列的所有信息。每行對應一列的信息。 這COMMANDE返回一個輸出表4列:CIDNOTNULLDFT值

2-我從「PRAGMA讀取所有的行table_info(MyTable)「,我比較列」名稱「與我想檢查列的名稱是否存在。

3-如果列存在,那麼我不做任何事

4-但如果存在,則列doen't,這裏我使用這個commade列添加到我的表:

ALTER TABLE MyTable ADD COLUMN NewColumn TEXT; 

這爲我工作,並正確地完成這項工作。

1

要測試列是否存在,執行PRAGMA table_info並檢查列名是否出現在結果中。

相關問題