mysql 自增列 中间断档,重置auto increment 无效

daemon_fish 2013-05-16 11:05:04
自增列 1,2,3,4,5 ..... 假如中间删掉一个, 想让5替换4,6替换5,有自动的做法吗?

如果中间删掉很多,还想把空掉得补齐要怎么做?

我在starkoverflow上查说重置 table 的 auto increment,但是我发现只能重置到更大的数,不能重置到更小的数,是不是避免冲突?如何重置?
...全文
349 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aa65535 2014-05-19
  • 打赏
  • 举报
回复
ALTER TABLE `table`
DROP COLUMN `id`,
ADD COLUMN `id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`),
AUTO_INCREMENT=1;
MrYangkang 2013-05-16
  • 打赏
  • 举报
回复
思想是先删除自增列,然后再重新添加一个自增列,序号就是从1开始连续的了。 alter table 表 drop column 自增编号列 alter table 表 add 自增编号列 int identity 或者 把不包含ID列的数据插人的新表 select IDENTITY(INT,1,1) as id,[列名1],[列名2],[列名n] into [新表] from [旧表]
daiyueqiang2045 2013-05-16
  • 打赏
  • 举报
回复
创建一个新的自增列然后,更新或者直接删除之前的列
ACMAIN_CHM 2013-05-16
  • 打赏
  • 举报
回复
daemon_fish 结帖率:0% 当您的问题得到解答后请及时结贴. http://bbs.csdn.net/topics/300235728 http://bbs.csdn.net/topics/330267949 http://bbs.csdn.net/topics/340156938 4、如何给帖子结帖,结帖如何给分? http://bbs.csdn.net/help#post_dispose
ACMAIN_CHM 2013-05-16
  • 打赏
  • 举报
回复
update table1 a,(select 自增列, (select count(*) from table1 where 自增列<=b.自增列) as new自增列 from table1 b) c set a.自增列=c.new自增列 where a.自增列=c.自增列

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧