这个查询有什么问题:
INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
它在没有WHERE
条款的情况下有效.我好像忘记了我的SQL.
这个查询有什么问题:
INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;
它在没有WHERE
条款的情况下有效.我好像忘记了我的SQL.
MySQL INSERT Syntax不支持WHERE子句,因此当前的查询将失败.假设id
列是唯一的或主键:
如果试图插入ID为1的新行,则应使用:
INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);
如果试图更改ID为1的现有行的权重/期望权重值,则应使用:
UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
如果需要,还可以使用INSERT..关于重复键语法,如下所示:
INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
甚至像这样:
INSERT INTO Users SET id=1, weight=160, desiredWeight=145 ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
还需要注意的是,如果id
列是一个自动增量列,那么最好将其从INSERT中删除,并让mysql按正常方式递增.