2014-06-09 23 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