mysql返回自增id

在mysql操作中执行insert,是没有自增id返回的,这就对于后续编写逻辑造成了很大不便。

其实有几种方法可以做到insert后直接获取到自增id。

1.执行select max(id);

  原理是直接查找数据库的最大id,坏处:一旦并发量大、数据量多时就会出现性能低、查找错误的情况。

2.执行selsct 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返回一个列表。

  要注意的是,当你执行多个insert时,它会返回第一个自增id。

参考:

  https://www.cnblogs.com/duanxz/p/3862356.html

 

猜你喜欢

转载自www.cnblogs.com/two-bees/p/11039454.html