这个查询有什么问题:
INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
它可以在没有 WHERE
子句的情况下工作。我似乎忘记了我的 SQL。
原文由 Ronald 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个查询有什么问题:
INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
它可以在没有 WHERE
子句的情况下工作。我似乎忘记了我的 SQL。
原文由 Ronald 发布,翻译遵循 CC BY-SA 4.0 许可协议
例如,我正在插入一个我知道从临时表 tmp_city 具有 id 54 的州的城市
下面的代码可以正常工作 -
insert into tb_cities (state_id, city_nm) (select '54' , t.city_name from tmp_city t)
原文由 Pradyut Bhattacharya 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
MySQL INSERT 语法 不支持 WHERE 子句,因此您的查询将失败。假设您的
id
列是唯一的或主键:如果您尝试插入 ID 为 1 的新行,您应该使用:
如果您尝试更改 ID 为 1 的现有行的权重/desiredWeight 值,您应该使用:
如果您愿意,还可以使用 INSERT .. ON DUPLICATE KEY 语法,如下所示:
或者甚至像这样:
同样重要的是要注意,如果您的
id
列是自动增量列,那么您最好将它从 INSERT 中全部省略,让 mysql 正常增加它。