多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### mysql自增长主键,删除数据后,将主键顺序重新排序 用数据库的时候,难免会删除数据,会发现设置的主键增长不是按照正常顺序排列,中间有断隔比如这样。 以我这个情况举例 处理方法的原理:删除原有的自增ID,重新建立新的自增ID。 ``` ALTER TABLE `news` DROP `NewsID`; ALTER TABLE `news` ADD `NewsID` int NOT NULL FIRST; ALTER TABLE `news` MODIFY COLUMN `NewsID` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(NewsID); ``` ``` ALTER TABLE `表名` DROP `id`; ALTER TABLE `表名` ADD `id` int NOT NULL FIRST; ALTER TABLE `表名` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id); ``` 执行上述代码后主键增长恢复正常 常规代码如下: 1,删除原有主键: ``` ALTER TABLE `table_name` DROP `id`; ``` 2,添加新主键字段: ``` ALTER TABLE `table_name` ADD `id` int NOT NULL FIRST; ``` 3,设置新主键: ``` ALTER TABLE `table_name` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id); ``` ================ 数据库中把ID自增长重置成1: 一般做法:(太麻烦) 复制表数据->删除原表、新建一张表->粘贴; 新方法一: 数据库中:新建查询->复制、粘贴一下代码->修改表名,执行即可(先把表数据清空); ``` DBCC CHECKIDENT ('表名', RESEED, 0) ``` 新方法二: ``` TRUNCATE TABLE 表名 ``` =================== 一、不清空数据 原理:删除原有的自增ID,重新建立新的自增ID。 1,删除原有主键: ``` ALTER TABLE `table_name` DROP `id`; ``` 2,添加新主键字段并设置主键: ``` ALTER TABLE `table_name` ADD 'id' mediumint(6) PRIMARY KEY NOT NULL AUTO_INCREMENT FIRST; ``` 二、如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数 ``` truncate table 表名 ```