在mysql操作中执行insert,是没有自增id返回的,这就对于后续编写逻辑造成了很大不便。

其实有几种方法可以做到insert后直接获取到自增id。

1.执行select max(id);

原理是直接查找数据库的最大id,坏处:一旦并发量大、数据量多时就会出现性能低、查找错误的情况。

2.执行selsct LAST_INSERT_ID();

原理是因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数 将返回该Connection对AUTO_INCREMENT列最新的insert or update*操作生成的第一个record的ID。这个值不会被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。使用单INSERT语句插入多条记录,  LAST_INSERT_ID返回一个列表。

要注意的是,当你执行多个insert时,它会返回第一个自增id。

参考:

mysql自增id存在哪里_mysql返回自增id相关推荐

  1. mysql数据库增删改查关键字_mysql数据库的增删改查

    数据库基本操作:增删改查#DML语言 /* 数据操作语言: 插入:insert 修改:update 删除:delete */ 1.增 插入语句的方式一 表已经存在啦,我们需要往里面插入数据/* 语法: ...

  2. mysql数据库增删改查关键字_Mysql数据库,增删改查笔记(非常重要)-阿里云开发者社区...

    新增数据: INSERT 语法: INSERT [INTO] [列名] VALUES; INSETR INTO 表名(列名1,列名2) VALUES(值1,值2); 如果INSETR语句中不写列名,则 ...

  3. mysql 多id批量查询_mysql如何实现多id联表查询结果

    商品表goodsidtitlepics1面包1,2,32手机4,5,6图片表imgidpath1/img/111.jpg2/img/2hjk.jpg3/img/3hjk.jpg4/img/4hjjjp ...

  4. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  5. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  6. mysql 返回自增id_mysql 返回自增id

    String dateNow=  DateTime.Now.ToString("yyyyMMddhhmmss"+  new Random().Next(1, 99)); //随机数 ...

  7. mysql获取自增_mysql 获取自增id的值的方法

    原生jdbc方式: Statement.getGeneratedKeys() 示例: Statement stmt = null; ResultSet rs = null; try { // // C ...

  8. mysql插入数据返回主键值_Mysql插入记录后返回该记录ID

    最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表.研究了一番决定使用Mysql提供了一个LAST_INSER ...

  9. 七种MYSQL插入数据后返回自增主键ID的方法

    我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...

最新文章

  1. 专业|尧德中:脑器交互学,一个发展中的新学科
  2. 看看 Grunt 的源码(一):grunt-cli 源码解析
  3. 004 .NetReactor 3.6.0.0之另类脱壳法
  4. html中单选多选怎么写,HTML中select标签单选多选用法详解
  5. 台积电5nm生产线污染原因查明:不影响A15芯片量产
  6. 与基础事务管理器的通信失败 存货申请_干货必读!细说分布式事务两阶段提交...
  7. 命令: LIST 响应: 150 Opening BINARY mode data connection. 错误: 20 秒后无活动,连接超时 错误: 读取目录列表失败
  8. 【Python笔记】Python/C++解决约瑟夫环问题
  9. ftl模板引擎遍历list
  10. nodeJS中利用第三方内置模块实现数字转大写功能
  11. 47页数字孪生人脸识别轨迹分析电子围栏智慧工地解决方案
  12. matlab legend颜色不变,关于MATLAB画图中legend标注曲线颜色不匹配问题
  13. 网页视频进度条禁止拖动----解决
  14. [NOIp 2014]解方程
  15. 携手聚力 共赢数智未来丨物通博联招募生态合作伙伴
  16. 【ML】Naive Bayes
  17. java反斜杠_如何在字符串中使用反斜杠(\)?
  18. eclipse3.6 太阳神版 中文汉化插件
  19. 请简述什么是spring的ioc和di_请简述什么是 Spring 的 IoC 和 DI?_学小易找答案
  20. 基于区块链的数据共享访问控制模型

热门文章

  1. Mac如何设置定时关机
  2. 鼠标悬停改变内容-react
  3. SP8093 JZPGYZ - Sevenk Love Oimaster(广义SAM)
  4. Adobe Illustrator CC 2018安装出现无法读取注册表
  5. 句子语义表征/句子向量
  6. 微信小程序canvas绘制圆角矩形
  7. 在办公室用QQ查看家中的宠物狗调不调皮(转)
  8. Android 超简洁的视频播放器推荐 ArtPlayer
  9. php读取mdb文件,php 访问access mdb文件的类
  10. RecyclerView底部刷新实现详解