sen*_*777 2 mysql reset auto-increment
我只是想知道,如果有一种优雅的方法可以根据当前内容自动将mysql表的自动增量重置为最低值.
例:
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
Run Code Online (Sandbox Code Playgroud)
现在自动增量将是6
但在我插入新内容之前,我删除了第3,4和5行.内容如下所示:
1 content of row 1
2 content of row 2
Run Code Online (Sandbox Code Playgroud)
自动增量仍然是6.
这就是问题所在.
我希望自动增量为3,因为根据插入的ID,它是可能的最低值.
如果自动增量"无限增长"并超出12位长整数的范围,则会阻止极大数量.
谢谢你的任何建议!
Mik*_*ant 11
这取决于您的存储引擎,
对于MyISAM和MySQL 5.6+上的InnoDB,您可以设置AUTO_INCREMENT表的值1.该值将自动增加到最大当前值+ 1.这样做.
ALTER TABLE table_name AUTO_INCREMENT = 1;
Run Code Online (Sandbox Code Playgroud)
对于MySQL <5.6上的InnoDB,这将无法工作,您需要手动执行此操作:
SELECT MAX(autoincrement_field) + 1 FROM table_name INTO @maxautoinc;
ALTER TABLE table_name AUTO_INCREMENT = @maxautoinc;
Run Code Online (Sandbox Code Playgroud)
请注意,在最后一种情况下,需要使用相同的数据库连接运行这两个查询.
| 归档时间: |
|
| 查看次数: |
10135 次 |
| 最近记录: |