选择最后插入 ID()

2023-11-27

有人可以解释一下 MySQL 函数 LAST_INSERT_ID() 是如何工作的吗?我试图获取数据库中最后插入的行的 id,但每次都获取 1。

我用的是mybatis。

示例查询是:

<insert id="insertInto" parameterType="Something" timeout="0">
  INSERT INTO something (something) VALUES (#{something})
  <selectKey resultType="int">
    SELECT LAST_INSERT_ID()
  </selectKey>
</insert>

Code:

System.out.println("Id : " + id)

Output:

Id : 1

LAST_INSERT_ID返回最后一个值隐含地插入到AUTO_INCREMENT当前会话中的列。

CREATE TABLE mytable (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT NOT NULL);

要使列自动递增,您应该从INSERT list:

INSERT
INTO    mytable (value)
VALUES  (1)

或为其提供一个NULL value:

INSERT
INTO    mytable (id, value)
VALUES  (NULL, 1)

在那之后,

SELECT  LAST_INSERT_ID()

将返回您的值AUTO_INCREMENT已插入到id column.

如果出现以下情况,这将不起作用:

  1. 您为AUTO_INCREMENT column
  2. 你打电话LAST_INSERT_ID在另一个会话中
  3. 您在同一语句中插入多行(LAST_INSERT_ID()将返回插入的第一行的值,而不是最后一行的值)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择最后插入 ID() 的相关文章

  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 在Oracle中查找不包含数字数据的行

    我试图在一个非常大的 Oracle 表中找到一些有问题的记录 即使该列是 varchar2 列 也应包含所有数值数据 我需要找到不包含数字数据的记录 当我尝试在此列上调用 to number col name 函数时 它会抛出错误 我想你可
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • MySQL中如何存储小数?

    我尝试过将 DECIMAL 与 2 2 一起使用 但它不允许我使用它 我只想存储一个数字 例如 7 50 或 10 50 我需要将这两个数字保留在小数点后 但是当我刷新数据库时 它会将值重置为 0 99 有什么建议么 第一个参数DECIMA
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • Azure Java SDK:ServiceException:ForbiddenError:

    尝试了基本位置检索器代码 如下所示 String uri https management core windows net String subscriptionId XXXXXXXX 5fad XXXXXX 9dfa XXXXXX St
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大
  • GAE 无法部署到 App Engine

    我正在尝试从 Eclipse 发布 Web 应用程序 我在 GAE 上创建了四个项目 可以通过登录我的帐户并查看控制台来查看它们 我已经改变了appengine web xml到项目的应用程序 ID 如果我将其更改为 GAE 上第一个创建的

随机推荐

  • 张量流:使用队列运行器有效地馈送评估/训练数据

    我正在尝试运行张量流图来训练模型并使用单独的评估数据集定期进行评估 训练和评估数据都是使用队列运行器实现的 我当前的解决方案是在同一个图中创建两个输入并使用tf cond依赖于一个is training占位符 我的问题通过以下代码突出显示
  • 如何从命令提示符使用 mysqldump 添加日期和时间以及备份文件名称并定义备份文件的路径

    我使用此命令从 mysqldump 进行备份 mysqldump uroot ptrackerdb alldatabases gt test sql 现在我想用我的备份文件添加日期时间 例如当前日期和时间 例如 test 25July201
  • 常见的 Haskell 运算符有可发音的名称吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我正在阅读为大善而学 Haskell 而且我从来不知道 Haskell 运算符
  • ElementClickInterceptedException:消息:元素单击被拦截:元素

    我试图单击 所有主题 和 所有状态 复选框 然后搜索结果 当我运行脚本时 会打开一个大小为 1036x674 的 Chrome 窗口 如果我不理会窗口 则会出现元素单击拦截错误 如果我最小化或最大化窗口 我的脚本就可以正常工作 我正在使用
  • 如何在 python 中的活动连接上启动 TLS?

    以下是我当前在端口 587 上连接到 gmail 的 smtp 服务器的代码 发出 STARTTLS 命令后 我如何完成 TLS 会话协商并开始发出 AUTH LOGIN 和 MAIL FROM 等命令 我省略了 Base64 编码的 gm
  • TestCoroutineDispatcher 和 TestCoroutineScope 均不处理协程测试异常

    使用这个manual测试协程 编写预期抛出异常的测试会导致崩溃 而不是通过测试 我想知道我做错了什么 private val testDispatcher TestCoroutineDispatcher Before fun setup p
  • Python 中的区域交集

    我有一个代码 它采用条件 C 作为输入 并将问题的解决方案计算为 x y 空间上的 允许区域 A 该区域由多个 管 组成 这些 管 由两条永远不会交叉的线定义 我要寻找的最终结果必须满足 k 个条件 C1 Ck 因此是 k 个区域 A1 A
  • 嵌入式环境中的STL

    我是一名 C 程序员 多年来一直听到这样的说法 STL 是not good用于嵌入式环境 因此通常禁止在基于嵌入式环境的项目中使用 我相信像 Boost 这样的 STL 库要强大 得多 并且提供更快 更少出错的开发方式 当然 语法有点吓人
  • iPhone + Twitter API:转换时间?

    有没有一种简单的方法可以将从 twitter 获得的时间戳转换为 UNIX 时间或从现在起的分钟数 我可以解析字符串并自己转换所有内容 但我希望有一种不需要这样做的转换方法 以下是带有时间戳的created at 元素的示例 2007 年
  • android c2dm注册ID

    我阅读了 Android Cloud to Device Messaging Framework 中的解释 当我们的应用程序成功注册到 C2DM 服务器后 我们会收到一个注册 ID 注册 ID 一直有效 直到应用程序明确取消注册 或者直到
  • 软键盘不存在,无法隐藏键盘 - Appium android

    我收到以下异常 org openqa selenium WebDriverException An unknown server side error occurred while processing the command Origin
  • Postgres UTF-8 字符排序

    我正在构建一个小型应用程序 其中包含数据库中的世界语单词 因此我有 apelojn 和 brakhorlo o 等带有 特殊 字符的单词 使用 PostgreSQL 9 4 4 我有一个words具有以下架构的表 lingvoj dev d
  • 无法通过 Lambda 中的 VPC 端点访问 S3

    我的 VPC 中有一个 Lambda 函数 我想访问 S3 存储桶 我认为我已经正确设置了 S3 VPC 端点 因为我在与 Lambda 函数相同的子网和安全组中创建了一个 EC2 实例 当我运行 Lambda 函数代码的副本时在EC2实例
  • Dapper 不会与具有自定义 getter/setter 的成员一起使用吗?

    根据我正在使用的一些代码 情况似乎如此 我在其中找不到任何内容简洁的文档明确表示它不适用于具有自定义获取 设置逻辑的成员 但我确实看到了这个示例 public class Dog public int Age get set public
  • 为nodejs创建验证码

    我正在尝试在网站的注册页面上放置验证码 如何在 Node js 中显示验证码 我找到了一个用纯js编写的聪明的 验证码 Features 只生成数字验证码PNG图像 内置字体 字符上下 左右限位 随机位移 完整的 JavaScript 它会
  • 无法识别的选择器发送到实例 NSTimer Swift

    我正在尝试开发一个包含简单秒表功能的应用程序 我正在使用 Xcode 6 和 Swift 语言 这是 FirstViewController 中的代码 IBAction func Stopwatch Sender UIButton var
  • C# 使用元组对 List<> 进行排序?

    我需要按发布日期对 MediaItem 对象的 List 进行排序 发布日期不是该项目的属性 所以我最初的意图是暂时附加一个发布日期属性 加载它们 排序 然后放弃该属性 我工作中的某人建议我使用 Tuple 并使用 LINQ 进行排序 我已
  • css自定义光标不起作用

    我正在使用 css 自定义光标来使用图像作为光标 图片不行啊这段代码有什么问题 Here是使用的图像 Fiddle cursor url http www sarkelliancreed comule com pics TREES jpg
  • 如何将变量从布局文件传递到 grails 模板中?

    因此 我有一个导航模板 common navigation gsp 它在 Grails 项目主布局文件 layouts main gsp 中呈现 如何将某种变量 参数 参数从各个视图文件传递到布局并最终传递到导航模板 我只是希望当我在页面上
  • 选择最后插入 ID()

    有人可以解释一下 MySQL 函数 LAST INSERT ID 是如何工作的吗 我试图获取数据库中最后插入的行的 id 但每次都获取 1 我用的是mybatis 示例查询是