引自here:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();
上述用例是什么(有什么好处)?
我从未在之前使用任何参数LAST_INSERT_ID
更新
我的问题是为什么想要以这种方式模拟这种类型的序列,当它通过自动递增的主键自动开箱即用?
答案 0 :(得分:1)
在不使用AUTO_INCREMENT的情况下生成序列的用例是在多个表中使用结果ID值,并且该值在所有表中都必须是唯一的。每个表中的AUTO_INCREMENT通常可能会导致每个表中存在相同的值。
忽略正常的表格要求,可以举一个例子。每次给定的考试都需要一个唯一的ID,但考试会记录在多个表格中:弹出式测验,每周考试,中期考试和期末考试。使用OP提供的引号可以生成ID序列,该序列可用于使ID在所有表中保持唯一。
答案 1 :(得分:0)
同样引自here:
如果将expr作为LAST_INSERT_ID()的参数给出,则该函数返回该参数的值,并将其记为LAST_INSERT_ID()返回的下一个值。这可以用来模拟序列: