sqlite:alter table之后没有列

时间:2014-06-09 00:59:42

标签: sql sqlite

我尝试将列添加到现有表中,然后使用它:

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。

出了什么问题,我错误地使用了“alter table”?

1 个答案:

答案 0 :(得分:2)

您的列未命名为s2,而是colum。检查ALTER TABLE是否有拼写。

sqlite> select colum from tst;
BB

这个问题可能应该被关闭,因为这是一个错字。


顺便说一句,代码应格式化为前面四个空格,而不是文本引用;这为您提供了monospace字体和语法高亮显示;后者可能帮助你看到了问题^^