MYSQL获取自增ID的四种方法
题外话:自增字段在开发的过程中一般插入null或者0值,此时MySQL会自动维护自增字段,自动设置为比上次插入值更大的值;自增字段必须为整型数据
@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是 系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
【SELECT @@IDENTITY】获取的是当前数据库连接的前一次执行的值。其他连接执行的值不会影响当前线程。时下流行的框架(如Spring-jdbc、mybatis、hibernate)的数据库连接都是存在ThreadLocal中的、是线程隔离的,所以不会获取到其他线程中的【SELECT @@IDENTITY】值。当多线程编程时、强制把数据库连接传给各个线程同时执行时才会取到其他线程的【SELECT @@IDENTITY】。
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.