SQL

MySQL插入查询不适用于WHERE子句

发布于 2021-05-10 20:49:06

此查询出了什么问题:

INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;

它在没有该WHERE子句的情况下起作用。我似乎忘记了我的SQL。

关注者
0
被浏览
79
1 个回答
  • 面试哥
    面试哥 2021-05-10
    为面试而生,有面试问题,就找面试哥。

    MySQL
    INSERT语法不支持WHERE子句,因此您的查询将失败。假设您的id列是唯一键或主键:

    如果您要插入ID为1的新行,则应使用:

    INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);
    

    如果您尝试更改ID为1的现有行的weight / desiredWeight值,则应使用:

    UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
    

    如果需要,还可以使用INSERT .. ON DUPLICATE KEY语法,如下所示:

    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像往常一样对其进行递增。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看