当我从用户那里收到数据时,我每次都会验证输入的格式 (PHP)。我唯一无法验证(或者我不想)的是违反约束(例如外键)。我让 DML 引发错误,让数据库驱动程序抛出异常。捕获它后,我只是通过 MySQL 的错误代码打印出一些错误消息。
问题是,即使插入失败,我看到 autoincrement
序列仍然增长,增加。我怎样才能防止这种情况发生?
最佳答案
这就是自动增量值和序列的工作原理。当一个值被使用时,如果事务失败不回收,事务回滚。
由于您使用的是自动增量值,实际值无关紧要,因此除了缺少数字的美学之外,空格应该不是问题。
关于即使由于错误导致插入失败,MySQL 自动增量值也会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108593/