博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL查询数据表的Auto_Increment(自增id)
阅读量:6431 次
发布时间:2019-06-23

本文共 916 字,大约阅读时间需要 3 分钟。

1.一般数据表的id都是设置成auto_increment的,所以当插入一条记录后,可以使用下面的命令来获取最新插入记录的id值

1 select last_insert_id();
View Code

   注意:1. 必须是在使用Insert语句后,紧接着使用select last_insert_id()才有效,在没有使用过Insert语句的情况下,查询返回的结果为0;

            2.如果在同一条Insert语句插入多条记录,返回的结果是第一条记录对于的id,如

1 insert into school.student 2 (name, age) values 3 ('s1', 18),4 ('s2', 18),5 ('s3', 28),6 ('s4', 19),7 ('s5', 18);
View Code

     返回的结果是s1对于的id号。

2. 为什么不直接使用 select max(id) from tableName;

    因为:如果手动删除了最新的数据,使用 max(id)查询的结果是当前剩下数据中最大的记录,

    而新插入数据则不一定从这个数字开始计数

3. 所以为了准确的获取下一条插入记录的id,应该查询的是auto_increment, 对应的SQL语句如下:

1 SELECT auto_increment FROM information_schema.tables where table_schema="dbName" and table_name="tableName";
View Code

  注意:auto_increment 可以通过 show table status where `name`='tableName' 查询得到,所以相当于一个字段了; 

                   auto_increment返回的是下一条插入记录的id值,而不是当前的最大id值

     information_schema.tables照写即可,

     table_schema="dbName",指的是数据库的名字,注意要使用双引号,

       table_name="tableName",指的是表的名字,也要使用双引号。

   

    

 

转载地址:http://ypxga.baihongyu.com/

你可能感兴趣的文章
C#使用正则表达式校验邮箱
查看>>
Linux自动清理N天前目录文件
查看>>
方便 快捷 安全的EVO邮件服务器
查看>>
bash的快捷键
查看>>
关于如何编写linux设备驱动
查看>>
DNS服务
查看>>
九州云开放“边缘云”能力 助力中国联通延展业务边界
查看>>
Linux进程状态(ps stat)之R、S、D、T、Z、X
查看>>
ME3750和普通3750的区别
查看>>
H3C交换系列之Super VLAN
查看>>
项目采购管理
查看>>
linux系统使用tomcat服务器部署web项目
查看>>
虚拟文件系统相关结构描述【续】
查看>>
我的友情链接
查看>>
思科通配符(Cisco Wildcard Mask)
查看>>
PHP cURL快速入门
查看>>
在errpt中报E87EF1BE的解决方法(转载)
查看>>
aix chfs及mklvcopy报错的解决方法
查看>>
取消新增的constraints
查看>>
OPTIMIZE TABLE
查看>>