当插入数据失败时,防止mysql自增长字段的自增长的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当插入数据失败时,防止mysql自增长字段的自增长的方法相关的知识,希望对你有一定的参考价值。

问题描述: 当mysql设置了自增长字段时(注意:一个表中只能设置一个自增长字段,可以不是主键,但必须是键 ),如果插入数据失败,那么自增长字段仍然会占用这个自增长值,再次成功插入数据时就会造成断层.

原因: 自增是缓存在内存字典中的,分配方式是先预留,然后再插入的。所以插入失败不会回滚内存字典。

解决方法: 在php程序中可以加一段代码,当插入数据失败时,执行sql语句重新设置auto_increment的值:

$sql = alter table `tbname` auto_increment=n;

利用函数mysqli_query($sql);即可执行sql语句

以上是关于当插入数据失败时,防止mysql自增长字段的自增长的方法的主要内容,如果未能解决你的问题,请参考以下文章

mysql关于自增长增长问题

mysql关于自增长增长问题

MyBatis获取插入记录的自增长字段值

自增长字段值的连续递增实现

SQLIte如何设置自动增长的字段?

SQL Server 2000中如何设置自增主键?