我已经通过连接完成了多次插入,最近的插入是 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/