我曾经能够在删除表中的行后将自动增量值设置为低于现有值,但现在我无法这样做(我只能将其设置为高于当前值)。我想知道这是因为升级MySQL(5.6.11)/ PHPMyAdmin(3.5.8),还是我仍然能够做到这一点?
答案 0 :(得分:10)
您可以通过重新启动MySQL服务器来重置隐藏值。 InnoDB在重新启动后重新计算自动增量值。
更新你的行,然后重新启动mysql deamon。这可以防止你重建你的桌子,这可能是一个大桌子的支柱。
答案 1 :(得分:9)
从手册:
You cannot reset the counter to a value less than or equal to any that have
already been used. For MyISAM, if the value is less than or equal to the
maximum value currently in the AUTO_INCREMENT column, the value is reset
to the current maximum plus one. For InnoDB, if the value is less than the
current maximum value in the column, no error occurs and the current sequence
value is not changed.
简而言之,它取决于所使用的存储引擎。
答案 2 :(得分:3)
感谢大家的正确答案。
InnoDB的解决方法:
请确保在重新装入之前放下桌子;你可能需要通过以下方式禁用密钥检查 SET foreign_key_checks = 0;