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

时间:2013-10-29 14:39:23

标签: mysql

我已经使用连接完成了几个插入,而我最近的插入是一个INSERT IGNORE语句。在此之后,我调用LAST_INSERT_ID(),如果INSERT IGNORE静默失败,则期望它为零。但是,它的作用是返回最后一个成功插入的ID,即使该ID是由我最近的插入语句以外的语句插入的......

1 个答案:

答案 0 :(得分:0)

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

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

SELECT LAST_INSERT_ID(), LAST_INSERT_ID(0);

因此,我将ID返回,然后将其设置为零。除非插入实际成功,否则对LAST_INSERT_ID的任何后续调用都将获得零值。