即使抛出异常DUPLICATE KEY或回滚事务,auto_increment值也会递增

JHS*_*JHS 3 mysql auto-increment

我有一个表 - 用idauto_increment和一个email定义为的列UNIQUE.

考虑将auto_increment其设置为1.

在我stored procedure当我INSERT的新行独特的电子邮件ID AUTO_INCREMENT列递增.正确的行为.

现在,当我再次尝试INSERT同一封电子邮件时UNIQUE KEY,违反了.我检查一下并做了一个ROLLBACK.但是auto_increment现在设置为2.为什么?

在第三次尝试中INSERT,这次使用唯一的电子邮件插入行,但id字段值为3.不好.

有没有办法可以将值减少到2.

Jer*_*ell 5

检查一下:MySQL AUTO_INCREMENT没有ROLLBACK

最重要的一点是:您永远不应该依赖自动生成密钥的数字特征.