[MYSQL] 获取自增id的几种方法

1
1. Select Max(id) From Table;

通过取表字段最大值的方式来获取最近一次自增id
缺点: 这种方法在多人操作数据库的软件上不可靠, 举个例子, 你刚插入一条记录. 当你在查询最大id时. 其他人也插入了记录. 这样就无法获取到我们想要的id

1
2. Select @@IDENTITY;

@@IDENTITY 是表示最近一次向具有”自增属性”的表, 插入记录时对应的自增列的值. @@IDENTITY 系统定义的全局变量, 一般系统定义的全局变量是以”@@”开头, 用户定义的变量是以”@”开头.
举例:
比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。

1
3. Select LAST_INSERT_ID();

LAST_INSERT_ID() 函数与表没有关联, 比如你向表A插入记录, 再向表B插入记录. 返回的值会变化.
在多用户交替插入的情况下, Max(id)显然没有卵用, 这时候就可以用到 LAST_INSERT_ID() 函数了. 无需担心会出现取值有误. 因为它是多线程的, 取的值都是各自独立的.