我已经使用连接完成了几个插入,而我最近的插入是一个INSERT IGNORE语句。在此之后,我调用LAST_INSERT_ID(),如果INSERT IGNORE静默失败,则期望它为零。但是,它的作用是返回最后一个成功插入的ID,即使该ID是由我最近的插入语句以外的语句插入的......
答案 0 :(得分:0)
我解决这个问题的方法是确保在检索到LAST_INSERT_ID后我的连接被重置。
我通过这种方式检索LAST_INSERT_ID来做到这一点:
SELECT LAST_INSERT_ID(), LAST_INSERT_ID(0);
因此,我将ID返回,然后将其设置为零。除非插入实际成功,否则对LAST_INSERT_ID的任何后续调用都将获得零值。