当插入数据失败时,防止mysql自增长字段的自增长的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当插入数据失败时,防止mysql自增长字段的自增长的方法相关的知识,希望对你有一定的参考价值。
问题描述: 当mysql设置了自增长字段时(注意:一个表中只能设置一个自增长字段,可以不是主键,但必须是键 ),如果插入数据失败,那么自增长字段仍然会占用这个自增长值,再次成功插入数据时就会造成断层.
原因: 自增是缓存在内存字典中的,分配方式是先预留,然后再插入的。所以插入失败不会回滚内存字典。
解决方法: 在php程序中可以加一段代码,当插入数据失败时,执行sql语句重新设置auto_increment的值:
$sql = alter table `tbname` auto_increment=n;
利用函数mysqli_query($sql);即可执行sql语句
以上是关于当插入数据失败时,防止mysql自增长字段的自增长的方法的主要内容,如果未能解决你的问题,请参考以下文章