如何重置MySQL的自动增量列

将 AUTO_INCREMENT 值重置为 1 1 : sql ALTER TABLE 表名 AUTO_INCRMENT = 1 1 ;
截断表会将 AUTO_INCRMENT 重置为 0: sql TRUNCATE TABLE 表名;
注意:截断会删除所有数据,请谨慎使用。

实用提醒:使用前请备份数据。

MSSQL在高版本中自动增长字段出现值跳跃的处理

老实说,这很烦人。
从2 01 2 年开始,重启更高版本的MSSQL后ID会发生跳跃。
比如INT会直接跳到1 000,你觉得错还是没错。

方法一、使用Sequence代替自动增长 这个技巧非常简单。
您首先创建一个不带缓存的序列。
例如,执行以下操作: sql 创建序列 MySeq 从 1 开始 增加 1 最小值 1 MAXVALUE 9 9 9 9 9 9 9 9 9 9 ;
注意,这里需要设置好MINVALUE和MAXVALUE,不要超过它们。
增量INCRMENT 1 ,根据需要更改。
然后插入数据的时候,直接使用这个序列,不用IDENTITY: sql 插入 MyTable(ID、名称) VALUES (NEXT VALUES FOR MySeq, 'Test');
不要忘记删除原表中的 IDENTITY 属性,否则会出现冲突。
此方法适用于您只想精确控制单个表的情况。

方法二、更改SQLSERVER启动参数 此举具有深远的影响。
首先打开配置管理器并找到 SQLSERVER 服务。
右键单击并选择属性,并将其添加到“启动参数”: -t2 7 2 别搞错了,这是英文t,数字是2 7 2 保存更改,然后重新启动SQLSERVER服务。
注意,这会阻止所有表ID跳转,并且会全局生效。

注意事项 1 、必须先备份数据库,这个大家都知道。
如果你搞砸了,哭就来不及了。
2 . 在生产环境中使用之前,先在测试环境中进行尝试。
看看它是否有效以及是否有任何其他副作用。
3 .微软已经表示这种跳跃行为不是BUG。
有时你不需要这个功能,所以如果可以就不要使用它。

当时我不明白为什么2 01 2 年后会变成这样。
不过这两种方法就看你要不要影响大局了。
更改序列以在本地使用并更改全局参数。