这取决于你用的是哪种数据库以及怎么删数据。一般结论如下:
不会回退。
AUTO_INCREMENT 只向前增长,不会因为你 DELETE 数据而变小示例:
id: 1,2,3,4
DELETE FROM t WHERE id = 4;
-- 再插入,id 是 5,不是 4
⚠️ 例外情况:
ALTER TABLE t AUTO_INCREMENT = 1;
不会回退,而且根本没有“自增字段”这种说法
SERIAL / IDENTITYDELETE FROM t;
-- 下一个 id 仍然继续增长
重置方式:
ALTER SEQUENCE t_id_seq RESTART WITH 1;
不会回退
IDENTITY(1,1) 不会因删除回退DBCC CHECKIDENT ('t', RESEED, 0);
一般不会回退
INTEGER PRIMARY KEY AUTOINCREMENT 会记录最大用过的值ROWID 可能复用,但 不保证删数据不会让自增 ID 回退,这是数据库的设计原则,目的是避免主键冲突。
如果你是因为“ID 不连续不好看 / 想紧凑”,那是另一回事,我可以给你正确做法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。