MySQL INSERT 查询与 WHERE 子句冲突
尝试使用类似以下的查询向 MySQL 数据库插入数据时:
<code class="language-sql">INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1;</code>
如果存在 WHERE 子句,则可能会收到错误信息。这是因为 MySQL 的 INSERT 语法不支持 WHERE 子句。
新增行
如果目的是使用指定的 ID 创建新行,正确的查询应如下所示:
<code class="language-sql">INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);</code>
更新现有行
要修改现有行中的值,应使用 UPDATE 语句:
<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
INSERT ... ON DUPLICATE KEY
或者,您可以使用 INSERT ... ON DUPLICATE KEY 语法根据唯一键或主键插入或更新行:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145</code>
使用自动递增列
如果表中的 id 列设置为自动递增,则可以从 INSERT 查询中省略它,并让 MySQL 处理递增:
<code class="language-sql">INSERT INTO Users SET weight=160, desiredWeight=145</code>
以上是为什么我的 MySQL INSERT 查询因 WHERE 子句而失败?的详细内容。更多信息请关注PHP中文网其他相关文章!