我有一张自行车详细信息表,我想使用SQL查询为不同的自行车类型添加不同的价格,但是我给了我一个语法错误:
INSERT INTO bike (full_day)
VALUES (10)
WHERE bike_type = 'mens_hybrid';
此代码有什么问题?
答案 0 :(得分:48)
INSERT
statement仅用于创建全新的记录,而不是用于将数据填充到现有记录中。您需要的是UPDATE
statement,它会更新现有记录:
UPDATE bike SET full_day = 10 WHERE bike_type = 'mens_hybrid';
(注意:下面是这个答案的早期版本,之前我很清楚原始海报试图做什么。我将它留在这里,因为最初回答这个问题的多个人似乎没有注意到写INSERT ... VALUES (...) WHERE
的问题让我觉得这个解释可能对遇到这个问题的人有用。)
这句话没有意义。 INSERT
不能使用WHERE
子句,因为WHERE
引用现有记录,INSERT
创建新记录。
(为了防止潜在的混淆:存在INSERT INTO ... SELECT ...
这样的事情,其中要插入的记录由SELECT
查询而不是VALUES
表达式确定,并且例如,SELECT
查询可以有一个WHERE
子句。但WHERE
子句在任何情况下都不能直接属于INSERT
语句。)