首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL表将自动增量重置为1,同时使用ids保留现有记录

MYSQL表将自动增量重置为1,同时使用ids保留现有记录
EN

Server Fault用户
提问于 2011-08-02 10:38:26
回答 4查看 1.9K关注 0票数 0

我有一个为分类站点命名产品的MySQL表,product_id是bigint(20) AUTO_INCREMENT字段。

目前,AUTO_INCREMENT值为224143。

客户端希望它从1重新启动,但是这个表有7000个现有的,从prduct_id 210235到224143。用户可以使用它的id管理他们的项目,我不能修改,重新生成id,但是希望从1重新启动下一个AUTOINCREMENT条目,并保持现有的记录。

提前谢谢。

EN

回答 4

Server Fault用户

发布于 2011-08-02 10:49:31

MySQL将自动将auto_increment值设置为MAX(column)+1,即使您使用了alter table tbl auto_increment = 1。这是一个有着非常合理理由的限制--重复的键永远不会有好的结局。

票数 3
EN

Server Fault用户

发布于 2011-08-02 10:50:47

首先,我认为这是一个糟糕的想法,你只有这样做才会自找麻烦。

第二,我不确定是否有可能将auto_increment计数器重新启动到1,因为MySQL会出于很好的理由阻止它。

票数 1
EN

Server Fault用户

发布于 2011-08-02 17:16:00

我认为您获得所需行为的最佳选择是将数据导出到一个文件(mysql -Bse "select * from table“将导出选项卡在默认情况下分开)并将数据导入到一个新表中,要么使用awk/perl重写ID编号,要么在不带ID列的情况下重新导入数据,并让它从新表的1开始auto_increment。请注意,您必须修复其他表与此表的ID号之间的任何关系。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/296609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档