我有一个自行车明细表,我想使用SQL查询为不同的自行车类型添加不同的价格,但我得到的是一个语法错误:
INSERT INTO bike (full_day)
VALUES (10)
WHERE bike_type = 'mens_hybrid';这段代码有什么问题?
发布于 2011-12-01 08:15:39
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语句。)
https://stackoverflow.com/questions/8334918
复制相似问题