【问题标题】:MySQL INSERT [...] SET not workingMySQL INSERT [...] SET 不工作
【发布时间】:2013-06-16 20:24:06
【问题描述】:

那么这个查询有什么问题:

INSERT `ttf` SET `weight_id` = 4  WHERE `weight_id` = 4

来自官方 MySQL 手册的语法参考:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)]
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

来源:https://dev.mysql.com/doc/refman/5.6/en/insert.html

我的查询返回错误:

SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `weight_id` = 4' at line 1 

是的,我有 MySQL 服务器 v.5.6,我知道通常使用的 INSERT [...] VALUES(...) 语法,但我想使用 SET 语法。

【问题讨论】:

    标签: mysql syntax sql-insert


    【解决方案1】:

    您可能需要检查UPDATE 语法

    UPDATE `ttf` SET `weight_id` = 4  WHERE `weight_id` = 4
    

    正如你所说的,INSERT 语法不支持 WHERE,因为它正在插入新行而不是更新旧行,这需要知道要更新哪一行。

    【讨论】:

      【解决方案2】:

      没关系,找到了。 插入不支持 WHERE。

      错误消息可能会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        • 1970-01-01
        • 2011-09-18
        • 2014-03-17
        • 2012-09-28
        • 1970-01-01
        相关资源
        最近更新 更多