我有一个为分类站点命名产品的MySQL表,product_id是bigint(20) AUTO_INCREMENT字段。
目前,AUTO_INCREMENT值为224143。
客户端希望它从1重新启动,但是这个表有7000个现有的,从prduct_id 210235到224143。用户可以使用它的id管理他们的项目,我不能修改,重新生成id,但是希望从1重新启动下一个AUTOINCREMENT条目,并保持现有的记录。
提前谢谢。
发布于 2011-08-02 10:49:31
MySQL将自动将auto_increment值设置为MAX(column)+1,即使您使用了alter table tbl auto_increment = 1。这是一个有着非常合理理由的限制--重复的键永远不会有好的结局。
发布于 2011-08-02 10:50:47
首先,我认为这是一个糟糕的想法,你只有这样做才会自找麻烦。
第二,我不确定是否有可能将auto_increment计数器重新启动到1,因为MySQL会出于很好的理由阻止它。
发布于 2011-08-02 17:16:00
我认为您获得所需行为的最佳选择是将数据导出到一个文件(mysql -Bse "select * from table“将导出选项卡在默认情况下分开)并将数据导入到一个新表中,要么使用awk/perl重写ID编号,要么在不带ID列的情况下重新导入数据,并让它从新表的1开始auto_increment。请注意,您必须修复其他表与此表的ID号之间的任何关系。
https://serverfault.com/questions/296609
复制相似问题