mysql - 在执行 INSERT IGNORE 时,我从 MySql 的 LAST_INSERT_ID 返回一个非零 id

标签 mysql

我已经通过连接完成了多次插入,最近的插入是 INSERT IGNORE 语句。之后,我调用 LAST_INSERT_ID(),如果 INSERT IGNORE 无提示失败,则期望它为零。但是,它的作用是返回最后一次成功插入的 ID,即使该 ID 是由我最近的插入语句以外的语句插入的...

最佳答案

解决这个问题的方法是确保在检索 LAST_INSERT_ID 后在我的连接上重置它。

我通过以下方式检索 LAST_INSERT_ID 来做到这一点:

SELECT LAST_INSERT_ID(), LAST_INSERT_ID(0);

所以,我取回 ID,然后将其设置为零。任何后续对 LAST_INSERT_ID 的调用都将获得零值,除非插入实际上成功。

关于mysql - 在执行 INSERT IGNORE 时,我从 MySql 的 LAST_INSERT_ID 返回一个非零 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661268/

相关文章:

mysql - 将多个id传递给mysql中的单个参数

php Mysql 插入 : can't insert anymore

mysql查询当前月份

mysql - 仅比较最新记录

mysql 对不同的列使用 WHERE 和 LIKE

php - 带有 PDO 下拉列表的 undefined variable

php - 需要评估 Joomla 是否适合 Web 应用程序需求

mysql - 在 SQL 中向查询添加子查询

php - 从数据库中获取下一个最高值和下一个最低值

MYSQL 连接没有按预期工作