首页 > 数据库 > mysql教程 > MySQL 的 ON DUPLICATE KEY UPDATE 如何返回受影响的行 ID?

MySQL 的 ON DUPLICATE KEY UPDATE 如何返回受影响的行 ID?

Susan Sarandon
发布: 2024-12-16 18:49:18
原创
451 人浏览过

How Can MySQL's ON DUPLICATE KEY UPDATE Return the Affected Row ID?

MySQL ON DUPLICATE KEY 能否返回最后插入或更新的 ID?

在 MySQL 中,INSERT ... ON DUPLICATE KEY UPDATE 语句允许在单个查询中执行插入或更新操作。然而,获取受影响行的 ID 可能具有挑战性。

通常,LAST_INSERT_ID() 函数返回新插入记录的 ID。更新操作后,它仍然没有意义。要解决此问题,您可以利用带有 LAST_INSERT_ID() 的表达式,如 MySQL 文档所述。

具体来说,创建一个更新 id 字段(本例中为 AUTO_INCRMENT 列)并包含 LAST_INSERT_ID(expr ) 作为一个表达式,使其有意义更新。

示例:

考虑一个 id 列为 AUTO_INCRMENT 的表。要更新或插入行并检索受影响的 ID:

INSERT INTO table (a, b, c) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;
登录后复制

此方法可确保 LAST_INSERT_ID() 提供受影响行的 ID,无论插入或更新操作如何,从而无需第二个查询来获取ID。

以上是MySQL 的 ON DUPLICATE KEY UPDATE 如何返回受影响的行 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板