mysql重置自增ID | 数据库中的id列从新开始排序

开发时常常会遇到因为删除过sql记录而致使主键ID不连续,在删除记录再新增时,自增的数值并不会占用你删除的值,而是继续在原基础上++。

其实自增编号(id)每每被用做标识记录的惟一性。无需过于在乎它的顺序和值。若是须要有意义的序号值,建议另起一个字段,和主键的意义分开配合使用。

不过我这人不同,虽然用不上主键id从新排序,但就是忍不住整理下排序。

这里以一个user表为例:假设要操做的表名就是user,指望针对表中id字段的值进行从新排序,那么接下来须要作的是

1. 在要操做的表上新建一个字段,用于储存当前的ID

alter table user add old_id int(10) not null;

2. 将当前的ID保存到新字段old_id中

update user set old_id=id;

3. 删除当前表的ID字段(自增主键)

alter table user drop id;

4. 从新创建ID字段,数据类型可按它原先的来

alter table user add id int(10) not null;

5. 设置一下这个新ID字段的属性,设置为自增和主键

alter table user modify column id int(10) not null auto_increment, add primary key (id);

6. 通过上面这步,新的ID字段已经从新排列了,下面还必须更新一下其它相关联的表,这也就是建立那个old_id的做用了

update user as a, 其它相关联的表名 as b set b.aid=a.id where b.aid=a.old_id;

评论

  1. 3 年前
    2022-3-08 16:24:17

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇