2014-06-09 22 views
0

後無專欄中,我試着列添加到現有的表,然後使用它:sqlite的:ALTER TABLE

sqlite> create table tst(id_key INTEGER PRIMARY KEY, s1 TEXT);  
sqlite> .tables 
tst 
sqlite> insert into tst (s1) values ("AA"); 
sqlite> select * from tst; 
1|AA 
sqlite> alter table tst add colum s2 TEXT NOT NULL DEFAULT "BB"; 
sqlite> select * from tst; 
1|AA|BB 
sqlite> .schema tst 
CREATE TABLE tst(id_key INTEGER PRIMARY KEY, s1 TEXT, colum s2 TEXT NOT NULL DEFAULT "BB"); 

所以一切看起來罰款。

sqlite> select s2 from tst; 
Error: no such column: s2 

所以在方案有 「S2」 一欄, 唯一記錄包含在 「S2」 領域, 但sqlite的數據不知道列S2。

什麼是錯,我用錯誤的方式「改變表」?

回答

2

您的專欄未命名爲s2,但是colum。檢查您的ALTER TABLE拼寫。

sqlite> select colum from tst; 
BB 

這個問題應該可能被關閉,因爲它是關於一個錯字。


順便說一句,代碼應格式化爲前面有四個空格,而不是文本引號;這給你等寬字體和語法突出顯示;後者可能已經幫助你看到問題^^

+0

謝謝,實際上我真正的問題是,sqlite不支持在「altere表添加」乘法列,我嘗試用更簡單的環境然後我的應用程序重現此錯誤,但看起來就像我需要去睡覺一樣。 – fghj