You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server能否关闭标识增量?如何将ID_Phisical自增值从20重置为1

自增ID跳值解决方法

原理说明

你遇到的跳值是数据库自增ID的正常机制,不是故障:每次执行插入操作(不管成功失败)都会消耗一个自增ID,目的是避免高并发场景下的ID分配冲突,多次插入空值失败自然会消耗19个ID,导致下一次插入从20开始。

无需新建表,可直接重置自增起始值

不同数据库的重置命令不同,对应常用数据库的操作如下:

  • MySQL / MariaDB
    执行以下命令即可,若表内有数据,需将1替换为大于当前表内最大ID_Phisical的数值,避免主键冲突:
    ALTER TABLE 你的表名 AUTO_INCREMENT = 1;
    
    若表内无有效数据,直接执行TRUNCATE TABLE 你的表名即可清空表同时重置自增到1,效率更高。
  • SQL Server
    执行以下命令重置,下一次插入将从1开始,有数据的场景同样需要调整重置值大于现有最大ID:
    DBCC CHECKIDENT ('你的表名', RESEED, 0);
    
  • PostgreSQL
    先确认自增序列名,默认格式为表名_ID_Phisical_seq,执行以下命令重置:
    ALTER SEQUENCE 你的序列名 RESTART WITH 1;
    

注意事项

如果表内已经存储了有效业务数据,严禁直接重置到1,否则后续插入新数据时会触发主键重复报错,仅可将自增起始值调整为大于当前表内最大ID_Phisical的数值。

自增ID异常截图

内容的提问来源于stack exchange,提问作者John P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:45:03