首页 > 解决方案 > SQL中返回自增键和最后插入ID的区别

问题描述

在我们的代码库中,我们使用两种不同的方法来检索新插入行的自动递增键:

  1. INSERT ... RETURNING id

  2. SELECT LAST_INSERT_ID()

id创建时在哪里INT UNSIGNED NOT NULL AUTO_INCREMENT。两者通常返回相同的值 - 通过使用第一个检查,然后运行第二个,并比较返回的值 - 但除了RETURNING可能在多行插入上返回多行的明显差异之外,它允许返回的不仅仅是键列,为了检索插入的自动递增键,它们之间有什么实际区别?

知道这是 MariaDB 中的 InnoDB 表可能是相关的。

标签: sqlmariadblast-insert-idsql-returning

解决方案


第一个肯定返回插入行的 id。INSERT如果在和之间插入另一行,第二个可能会返回不同行的 id SELECT


推荐阅读