使用SQL将值插入特定行

时间:2011-12-01 00:10:04

标签: sql

我有一张自行车详细信息表,我想使用SQL查询为不同的自行车类型添加不同的价格,但是我给了我一个语法错误:

INSERT INTO bike (full_day)
VALUES (10)
WHERE bike_type = 'mens_hybrid';

此代码有什么问题?

1 个答案:

答案 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语句。)