首页 >数据库 >mysql教程 >MySQL INSERT/UPDATE 使用 ON DUPLICATE KEY 后如何获取行 ID?

MySQL INSERT/UPDATE 使用 ON DUPLICATE KEY 后如何获取行 ID?

Patricia Arquette
Patricia Arquette原创
2024-12-02 15:07:11885浏览

How to Get the Row ID After MySQL INSERT/UPDATE with ON DUPLICATE KEY?

使用重复键检索 INSERT/UPDATE 的行 ID

问题:

如何在使用 ON 执行 INSERT 或 UPDATE 后能否检索行的 ID MySQL 中的 DUPLICATE KEY,无需运行单独的查询?

答案:

要实现此目的,您可以使用 LAST_INSERT_ID(expr) 函数作为解决方法。通过将表达式传递给此函数,您可以使 LAST_INSERT_ID 对更新有意义。

说明:

如链接的文档中所述(https://web.archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html),LAST_INSERT_ID()通常只返回 '成功插入的 ID。

但是,通过在 ON 中使用 LAST_INSERT_ID(expr) DUPLICATE KEY UPDATE 子句,您也可以使其对更新有意义。

例如,如果 'id' 是您的 AUTO_INCREMENT 列,您可以按如下方式修改查询:

INSERT INTO table (a) VALUES (0)
ON DUPLICATE KEY UPDATE>

在这种情况下,如果找到并更新了现有记录,则 LAST_INSERT_ID(id) 将返回更新的 ID,或者如果找到并更新了现有记录,则返回新插入记录的 ID未发现重复项。

以上是MySQL INSERT/UPDATE 使用 ON DUPLICATE KEY 后如何获取行 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn