首页 > 解决方案 > 有没有办法告诉 MySQL 在 auto_increment 字段溢出时不要抛出?

问题描述

这个问题来看,当 auto_increment 字段溢出时,MySQL 会抛出异常。但是,就我而言,我想自动清除旧数据。有什么方法可以告诉 MySQL 在字段溢出时不要抛出?我已经在 auto_increment 字段上声明了一个 PK。

标签: mysqlauto-increment

解决方案


即使您清除旧记录,自动增量也永远不会回收旧的 id 值。它只会增加。即使您尝试将自动增量设置回开始:

 ALTER TABLE mytable AUTO_INCREMENT=1;

您将看到SHOW CREATE TABLE mytable它是否忽略了将值设置为 1 的请求,并将其增加到 MAX(id)+1。

除非您使用 完全清空表,否则您TRUNCATE TABLE无法从清除旧记录中受益。

BIGINT如果您担心值用完,只需使用 a INT


推荐阅读