我有一个自行车详细信息表,我想使用SQL查询为不同的自行车类型添加不同的价格,但是我给了我一个语法错误:
INSERT INTO bike (full_day)
VALUES (10)
WHERE bike_type = 'mens_hybrid';
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?
rua*_*akh 53
一种INSERT说法是只为创造全新的记录,而不是将数据填充到现有的.你需要的是一个更新现有记录的UPDATE声明:
UPDATE bike SET full_day = 10 WHERE bike_type = 'mens_hybrid';
Run Code Online (Sandbox Code Playgroud)
(注意:下面是这个答案的早期版本,从我之前很清楚原始海报试图做的事情.我将它留在这里,因为最初回答这个问题的多个人似乎没有注意到这个问题写作INSERT ... VALUES (...) WHERE,这让我觉得这个解释可能对遇到这个问题的人有用.)
那句话没有意义.一个INSERT不能接受一个WHERE子句,因为它WHERE引用了现有的记录,并INSERT创建了一个新的记录.
(防止潜在的混淆:存在这样的事情INSERT INTO ... SELECT ...,即插入的记录由SELECT查询而不是VALUES表达式确定,在这种情况下,SELECT查询当然可以有一个WHERE子句.但在任何情况下都不是WHERE子句INSERT直接属于声明.)
| 归档时间: |
|
| 查看次数: |
78408 次 |
| 最近记录: |