即使由于错误导致插入失败,MySQL 自动增量值也会增加

标签 mysql sql auto-increment

当我从用户那里收到数据时,我每次都会验证输入的格式 (PHP)。我唯一无法验证(或者我不想)的是违反约束(例如外键)。我让 DML 引发错误,让数据库驱动程序抛出异常。捕获它后,我只是通过 MySQL 的错误代码打印出一些错误消息。

问题是,即使插入失败,我看到 autoincrement 序列仍然增长,增加。我怎样才能防止这种情况发生?

最佳答案

这就是自动增量值和序列的工作原理。当一个值被使用时,如果事务失败不回收,事务回滚。

由于您使用的是自动增量值,实际值无关紧要,因此除了缺少数字的美学之外,空格应该不是问题。

关于即使由于错误导致插入失败,MySQL 自动增量值也会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108593/

相关文章:

php - 您可以使用 MySQL 运行的 PHP 查询有最大数量限制吗?

java - Java SQLite数据库连接问题

php - MySQL AUTO_INCREMENT 根据年份

mysql - 错误: OLE DB provider "MSDASQL' ' for Linked Server '' bequick'' was unable to begin a Distributed transaction

mysql - 从 select 创建表,然后通过在 mysql 中添加自动增量列来更改表

mysql - 为每个唯一组设置 auto_increment 值

php - 变量在函数外不可见

mysql - 将表中的一列转换为十六进制,并使其余数据保持不变

找不到Mysql库

mysql - 使用MYSQL函数返回STRING类型