各种获取mysql表自增id的方式
作者:smice分类:Other
日期:2022-04-25 09:07:002022-04-25阅读:211

有一个需求就是新增一条反馈记录,反馈附件路径需要对应反馈记录id,这里就需要获取反馈id。

  1. 使用mysql的max()函数:select max(id) from table
    优点:sql简单
    缺点:获取不到真正的自增id,如果最新的一条记录被删除,通过max获取最大id+1是错误的。
  2. select LAST_INSERT_ID()
    优点:能获取到自增id,sql简单
    缺点:获取到的id只能是刚新增完,如果是多表新增获取到的id可能是其他表的id,且清空表后没有新增获取到的id也不会变化
  3. 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。
弹幕评论