sidstory
各种获取mysql表自增id的方式
作者:smice分类:Other
日期:2022-04-25 09:07:002022-04-25阅读:211
有一个需求就是新增一条反馈记录,反馈附件路径需要对应反馈记录id,这里就需要获取反馈id。
- 使用mysql的max()函数:select max(id) from table
优点:sql简单
缺点:获取不到真正的自增id,如果最新的一条记录被删除,通过max获取最大id+1是错误的。 - select LAST_INSERT_ID()
优点:能获取到自增id,sql简单
缺点:获取到的id只能是刚新增完,如果是多表新增获取到的id可能是其他表的id,且清空表后没有新增获取到的id也不会变化 - select Auto_increment from information_schema.tables where Table_Schema='database_name' and table_name='table_name'
优点:能获取到自增id,很好用
缺点:不易记住,sql复杂。mysql8.0及以上版本加了缓存,导致默认不会获取最新的自增id。请修改配置文件,设置information_schema_stats_expiry=0,或者每次查询前执行analyze table。
弹幕评论