sql - SQL中返回自增键和最后插入ID的区别
问题描述
在我们的代码库中,我们使用两种不同的方法来检索新插入行的自动递增键:
id
创建时在哪里INT UNSIGNED NOT NULL AUTO_INCREMENT
。两者通常返回相同的值 - 通过使用第一个检查,然后运行第二个,并比较返回的值 - 但除了RETURNING
可能在多行插入上返回多行的明显差异之外,它允许返回的不仅仅是键列,为了检索插入的自动递增键,它们之间有什么实际区别?
知道这是 MariaDB 中的 InnoDB 表可能是相关的。
解决方案
第一个肯定返回插入行的 id。INSERT
如果在和之间插入另一行,第二个可能会返回不同行的 id SELECT
。
推荐阅读
- java - 在 sqlite 中更新查询
- c# - 捕获单击 Listview,以查看单击了哪些项目,而无需更改选择
- python - 如何搜索并用封闭字符替换文本文件?
- jquery - 使用jquery将嵌套的html表导出到excel
- java - Spring Boot 客户端无法向管理员注册
- laravel - 我的 Laravel 引导方法不接受任何条件
- python - 如何将函数属性用作python对象以及字符串
- javascript - 使用 cryptico 库进行解密的 Javascript 错误
- rxjs - 如何保持多窗口Angular App之间的通信
- mongodb-stitch - 为什么我的 mongodb-stitch 服务返回值类型($numberLong, $numberInt,...)?