一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ?
2018-03-06 15:13
1081 查看
一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是18;但是如果重启(文中提到的)MySQL的话,这条记录的ID是15。因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失。
但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是18。因为MylSAM表会把自增主键的最大ID记录到数据文件里面,重启MYSQL后,自增主键的最大ID也不会丢失。
注:如果在这17条记录里面删除的是中间的几个记录(比如删除的是10,11,12三条记录),重启MySQL数据库后,insert一条记录后,ID都是18。因为内存或者数据库文件存储都是自增主键最大ID
但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是18。因为MylSAM表会把自增主键的最大ID记录到数据文件里面,重启MYSQL后,自增主键的最大ID也不会丢失。
注:如果在这17条记录里面删除的是中间的几个记录(比如删除的是10,11,12三条记录),重启MySQL数据库后,insert一条记录后,ID都是18。因为内存或者数据库文件存储都是自增主键最大ID
相关文章推荐
- mysql insert一条记录(事务提交之前)怎样返回创建记录的主键id,last_insert_id(),selectkey && <select> 标签属性
- Mysql删除重复记录,保留id最小的一条
- MySql insert一条数据时使用自增主键,并在返回对象中给ID赋值
- mysql删除无主键表中重复记录(只保留一条记录)
- 巧妙解决mysql删除或添加记录时,对自增主键ID进行重新排序的问题
- last_insert_id()获取mysql最后一条记录ID
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- mysql删除重复记录,保存Id最小的一条
- mysql删除重复记录,保存Id最小的一条
- Mysql删除重复记录,保留id最小的一条
- MySQL删除没有主键的表中的重复记录,只保留一条记录
- mysql删除重复记录,保存Id最小的一条
- 传两个整型参数(如 15,24)建一张表15,16,17。。。24 每个数为一条记录的表
- mysql删除重复记录,保存Id最小的一条
- mysql删除重复记录,保存Id最小的一条
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- mysql删除重复记录,保存Id最小的一条
- mysql删除重复记录,保存Id最小的一条
- mysql删除重复记录,保存Id最小的一条