将新数据插入表时出现语法错误

时间:2016-11-11 17:18:55

标签: sql sqlite

当我尝试在表中插入新条目时,我不断收到语法错误,但我似乎无法弄清楚原因。 对于初学者来说,这是.schema:

CREATE TABLE collection (
id int primary key not null,
album text not null,
artist text not null,
year int not null,
cover text 
);

这是我用来添加条目的行:

sqlite> insert into collection(115,"houses of the holy","led zeppelin", 1973, "junk");

所有值都匹配:id int,专辑文本,艺术家文本,年份int,封面文本。但终端只是吐出以下语法错误:

Error: near "115": syntax error

我还测试过将int值放在引号内,但我最终得到:

Error: near ";": syntax error

有人可以帮我弄清楚我做错了吗?

2 个答案:

答案 0 :(得分:3)

您错过了return 255.65 * 1000000 + .000000005 - 255 * 1000000 and return 268.65 * 1000000 + .000000005 - 268 * 1000000 give 650000.0 ? 关键字。

VALUES

有关详细信息,请参阅INSERT DOCS

答案 1 :(得分:1)

此语法不正确:

select 
    case 
        when year('2002-01-14 00:00:00.000') = '2002' then 'equal' 
        else 'not equal' 
    end

首先,使用单引号而不是双引号:

insert into collection(115,"houses of the holy","led zeppelin", 1973, "junk")

除此之外,查询解析器期望这些值是列名称,并且它们无法作为列名有效。您应该只需添加insert into collection (115, 'houses of the holy', 'led zeppelin', 1973, 'junk') 关键字:

VALUES

如果失败,请明确指定列名:

INSERT INTO collection VALUES (115, 'houses of the holy', 'led zeppelin', 1973, 'junk')