引用自这里
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();上面的用例是什么(好处是什么)?
我以前从未用过任何参数的LAST_INSERT_ID .
更新
我的问题是为什么 one想要这样模拟这样的序列,当它通过自动递增的主键自动打开时?
发布于 2019-08-04 18:46:16
在不使用AUTO_INCREMENT的情况下生成序列的用例是在多个表中使用得到的ID值,并且它在所有表中都必须是唯一的。每个表中的AUTO_INCREMENT通常会导致每个表中存在相同的值。
不考虑正常的形式要求,一个例子可以是来自一个教室。每一次考试都需要一个独特的ID,但考试记录在多个表格中:抽查、每周考试、期中考试和期末考试。使用OP提供的引号允许生成ID序列,该序列可以用于保持所有表中ID的唯一性。
发布于 2011-08-19 03:42:13
也被引用自这里
如果expr作为参数提供给LAST_INSERT_ID(),则该参数的值由函数返回,并作为LAST_INSERT_ID()返回的下一个值而被记住。这可以用来模拟序列:
发布于 2011-08-19 05:18:09
上面给出的查询是update查询,查询只是更改前面行中的id。它只是更新一个行id,所以需要像这样更新它。可能是用户在对其做了一些工作之后想要更改结果行的索引。LAST_INSERT_ID将返回最后插入的id。只有当用户希望将行的索引从上一行更改为最新的结果集时,才会出现这种情况。
https://stackoverflow.com/questions/7116646
复制相似问题