mysql获取表中自增id的方法:

1. 使用 select MAX(id) from tablename; 获取的是表中最大的id;顺序执行  insert ---> delete 插入的数据----> select MAX(id) from tablename; 获取到的是 insert 之前的最大id;

2. SELECT LAST_INSERT_ID(); 获取到的是最后一次insert 自增表数据的id;
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID 现实的是b表中插入数据的id。 
 
在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用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返回一个列表。

3. @@IDENTITY 和 SCOPE_IDENTITY 可以返 回当前会话中的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。
@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。 
 
比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。 
 
4. SHOW TABLE STATUS; 
 
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.

 获取下一个自增id

AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = dbName AND TABLE_NAME = tblName;

例如:
SELECT auto_increment FROM information_schema.`TABLES` WHERE TABLE_SCHEMA='my_db_name' AND TABLE_NAME='my_table_name';
该方法获取指定库中指定自增主键表中下一个自增值时的id;

获取mysql 自增id 和mysql 下一个自增id的方法相关推荐

  1. mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法

    mysql获取一个表中的下一个自增(id)值的方法 MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get t ...

  2. mysql 获取递增id_如何在MySQL中获取下一个自动递增ID?

    MySQL具有AUTO_INCREMENT关键字来执行自动增量.AUTO_INCREMENT的起始值为1,这是默认值.每条新记录将增加1. 要获得MySQL中的下一个自动增量ID,我们可以使用MySQ ...

  3. 获取数据表里的下一个自增序号

    查询table 下一个将要生成的id值 SELECT IDENT_CURRENT('table') + IDENT_INCR('table'); 查询table当前最大的id值,自增序号 SELECT ...

  4. Mybatis 获取当前序列和下一个序列值 以及在一个方法中写多条SQL 语句

    目录 1.Mybatis 获取当前序列和下一个序列值 2.Mybatis 在一个方法中写多条SQL 语句 1.Mybatis 获取当前序列和下一个序列值 #获取当前序列值 select XXX_seq ...

  5. java获取前五分钟时间,java计算下一个整5分钟时间点

    需求背景 我的需求是获取当前时间之后的下一个"整5分钟时间点". 首先,那么何为"整5分钟时间点"? 满足以下两个条件的时间: 分钟数等于以下时间中的一个,且秒 ...

  6. MySQL 5.7 XID乱码情况下XA事务回滚处理方法

    用以下语句输出16进制XID: XA RECOVER CONVERT XID 返回示例: 0xDE1DD62DEA2341C9845B24600B661C1A000000000000000000000 ...

  7. java获取div id_java – Selenium和xpath:找到一个带有class / id的div并验证文本

    我试图让xpath找到一个div,并验证div里面有一个特定的文本字符串. Model saved 和 Save to server successful 这是我目前使用的代码: viewerHelp ...

  8. android 指定资源id,Android平台下如何固定资源ID

    文章转自半导体人社群芯方式 [QUESTION] 如何固定资源ID [ANSWER] 一般情况,同一个资源,因为程序的不停修改,不同版本编译后,这个资源产生的ID可能会变化.对于一个独立的apk来说, ...

  9. 如何取得SQL中自增伴位的下一个值

    一般來說, 俱有 identity 屬性欄位的 table 的目前值可以很容易地利用 max 函數來取得. 不過, 也很有可能 max 該筆資料已被刪除了, 所以利用 max 查找出來的結果不正確. ...

最新文章

  1. 用一个实际例子理解Docker volume工作原理
  2. 简述angular中constant和$filter的用法
  3. IOS的 testflight测试设置
  4. MySql数据类型介绍
  5. 使用postman操作ElasticSearch
  6. Qt多线程-QThreadPool线程池与QRunnable
  7. 基于docker使用jenkins集成sonar
  8. 设计学生证信息管理系统(C++实现,附源代码,详细解析)
  9. arraylist java 排序_java的arraylist排序示例(arraylist用法)
  10. 子过程或函数未定义_Power Pivotamp;Power BI DAX函数说明速查
  11. ASP.NET MVC 5 笔记
  12. 滴滴自研分布式NoSQL数据库Fusion的演进之路
  13. python svm超参数_为了能早点买房,我用 Python 预测房价走势!
  14. vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab
  15. 环评图件制作-数据处理+图件制作(weixin公众号【图说GIS】)
  16. 嵌入式C编程中的设计模式之二——状态机模式
  17. C# 使用DataMatrix.net.dll进行二维码打印
  18. MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义
  19. CART回归树原理及python实现
  20. 家电 计算机和电讯领域 英语,美国电子电器工程硕士11个分支方向,你懂吗?...

热门文章

  1. 基于Logistic回归的麻雀搜索算法
  2. 白话Angular词汇
  3. java 使用GeoTools工具 geojson 与shp 相互转换
  4. SwiftUI之深入解析如何绘制徽章视图的路径和形状
  5. CSS学习中十条速记口诀
  6. sFlow监控技术及Collector工具概述
  7. c语言程序设计学籍信息,C语言程序设计报告——学生学籍管理(报告).doc
  8. 如何转接固定电话(内线)
  9. 加密听证会观点概览,美国监管首次强调Web3.0是未来
  10. [jzoj 6305] 最小值 {单调栈}