我只是想知道,是否有一种优雅的方法可以根据当前内容自动将 mysql 表的自动增量重置为最低值。
example:
mytable:
1 content of row 1
2 content of row 2
3 content of row 3
4 content of row 4
5 content of row 5
现在自动增量将为 6
但在插入新内容之前,我删除了第 3,4 和 5 行。内容如下所示:
1 content of row 1
2 content of row 2
自动增量仍为 6。
这就是问题所在。
我希望自动增量为 3,因为根据插入的 ID,它是可能的最低值。
如果自动增量“无限”增长并超出 12 位长整数的范围,则可以防止出现非常大的数字。
感谢您的任何建议!
这取决于你的存储引擎,
对于 MySQL 5.6+ 上的 MyISAM 和 InnoDB,您可以设置AUTO_INCREMENT
表中所说的值1
。该值将自动增加到最大当前值 + 1。这样做。
ALTER TABLE table_name AUTO_INCREMENT = 1;
对于 MySQL
SELECT MAX(autoincrement_field) + 1 FROM table_name INTO @maxautoinc;
ALTER TABLE table_name AUTO_INCREMENT = @maxautoinc;
请注意,在最后一种情况下,两个查询需要使用相同的数据库连接运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)