MYSQL如何获取系统自增id信息

1. select max(id) from tablename
 
2.SELECT LAST_INSERT_ID() 函数
 
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_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. select @@IDENTITY;
 
 @@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
 
比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。 
 
4. SHOW TABLE STATUS;
 
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.

时间: 2024-11-06 22:34:42

MYSQL如何获取系统自增id信息的相关文章

Mysql获取最大自增ID(auto_increment)

在关系型数据库的表结构中,一般情况下,都会定义一个具有‘AUTO_INCREMENT’扩展属性的‘ID’字段,以确保数据表的每一条记录都有一个唯一标识. 而实际应用中,获取到最近最大的ID值是必修课之一,针对于该问题,实践整理如下: 1.新建测试数据表get_max_id  mysql>CREATETABLE `get_max_id` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '业务主键', `content` char(25

hibernate实现分表后获取insert自增ID方法。

#第一种基于原生的JDBC的方式实现 private Integer insert(POJO entity, String table) throws SQLException { String insertSQL = "INSERT INTO " + table + " (XXXX)VALUES(?,?,?,?,?,?,?,?)"; DataSource dataSource = SessionFactoryUtils.getDataSource(getHiber

解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题

https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id 1 2 3 4 现在删除4,就变成了 1 2 3 这时候,如果增加一条数据,会变成 1 2 3 5 上面5不是我们想要的结果,4才是理想的id,解决方法是,在删除4之后,执行下面的sql语句: ALTER TABLE table_name AUTO_INCREMENT = 1; 原文地址:http

Mysql单个获取系统时间,年,月,日

Mysql数据库中获取系统时间,年,月,日单个获取 获取当前系统日期时间:select SYSDATE() AS 系统日期时间; 获取当前系统年月日:select current_date AS 年月日; 获取当前系统年份:select year(CURRENT_DATE) AS 年 ; 获取当前系统月份:select month(CURRENT_DATE) AS 月; 获取当前系统日:select day(CURRENT_DATE) AS 日; 获取当前系统时间:select time(SYS

mysql sql获取上条插入id,update影响行数

1.获取上条插入数据 LAST_INSERT_ID(); 2.获取update影响行数. ROW_COUNT(); mysql> UPDATE t -> SET address = 'beijing111' -> WHERE id = 1 -> AND NAME = 'yubowei'; Query OK, 1 row affected (0.30 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> mysql> SEL

python实现获取系统版本和mac信息上传到指定接口

import os,platform,uuid,urllib.parse,urllib.request,json def BeforeSystemRequests(): ''' the systeminfo uploads to api of .. ''' def get_system_version(): system_name = platform.system() if system_name == 'Windows' and os.name == 'nt': system_machine

mybatis如何获取插入记录后的自增ID

场景: 很多时候, 我们设置数据库表字段为自增, 有些业务需要插入之后,获取到自增后的ID进行业务处理. 方法: 在配置文件中加入 useGeneratedKeys="true" keyProperty="id" useGeneratedKeys 表示使用自增ID, keyProperty表示主键的属性名, 也就是java类中的实体名称 插入之后,通过实体getID() 方法获取到自增ID, 代码如下: Admin admin = adminService.getB

PowerShell 获取系统的硬件信息

1.获取系统的BIOS的信息: Get-WMIObject -Class Win32_BIOS 2.获取内存信息: Get-WMIObject -Class Win32_PhysicalMemory 3.查看CPU信息: Get-WMIObject -Class Win32_Processor 4.查看硬盘信息: Get-WMIObject -Class Win32_DiskDrive

解决数据库自增ID的问题

(1)设置主键自增为何不可取这样的话,数据库本身是单点,不可拆库,因为id会重复. (2)依赖数据库自增机制达到全局ID唯一使用如下语句:REPLACE INTO Tickets64 (stub) VALUES ('a'); SELECT LAST_INSERT_ID();这样可以保证全局ID唯一,但这个Tickets64表依旧是个单点. (3)依赖数据库自增机制达到全局ID唯一并消除单点在2的基础上,部署两个(多个)数据库实例,设置自增步长为2(多个则为实例数),即auto-increment