关于MySQL获取自增ID的几种方法

 

1. Select Max(id) From Table;
通过取表字段最大值的方式来获取最近一次自增id
缺点: 这种方法在多人操作数据库的软件上不可靠, 举个例子, 你刚插入一条记录. 当你在查询最大id时. 其他人也插入了记录.  这样就无法获取到我们想要的id
2. Select @@IDENTITY;
@@IDENTITY 是表示最近一次向具有"自增属性"的表, 插入记录时对应的自增列的值.  @@IDENTITY 系统定义的全局变量, 一般系统定义的全局变量是以"@@"开头, 用户定义的变量是以"@"开头. 
举例: 
 比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。
3. Select LAST_INSERT_ID();
LAST_INSERT_ID() 函数与表没有关联, 比如你向表A插入记录, 再向表B插入记录.  返回的值会变化.
在多用户交替插入的情况下, Max(id)显然没有卵用,  这时候就可以用到 LAST_INSERT_ID() 函数了.    无需担心会出现取值有误.   因为它是多线程的, 取的值都是各自独立的. 


posted @ 2016-08-09 01:57  余晓波  阅读(611)  评论(0编辑  收藏  举报