一、首先给出解决方案
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);
二、执行每段sql语句时 数据表发生的变化
1.原始数据表用以模拟id顺序错乱:
1,删除原有主键:
ALTER TABLE `table_name` DROP `id`;
1.1此时数据表变成下图所示,id行被删除
2.执行下面的sql语句:
2,添加新主键字段:
ALTER TABLE `table_name` ADD `id` int NOT NULL FIRST;
2.1此使数据表变成下图所示,id行出现,并且被FIRST修饰后,出现在表的第一列 值都为0
3.执行下面的sql语句:
3,设置新主键:
ALTER TABLE `table_name` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);
3.1此时数据表id行被重新排列
总结:这样做确实可以将id重新排列,但是这样有什么意义呢,如果一个user表中的user_id,往往会与其他表有所关联,这样做岂不是破坏了这种关联性,感觉弊大于利。