我有一个MySQL表命名为分类网站的产品,product_id是bigint(20)AUTO_INCREMENT字段。
目前AUTO_INCREMENT的值是224143。
客户希望它从1重新启动,但是这个表有7000个从prduct_id 210235到224143的STARTING。用户可以通过使用它的id来pipe理他们的项目,我不能修改,重新生成id,但是想从1重新开始下一个AUTOINCREMENT ENTRY,按原样保存现有logging。
提前致谢。
你不能。 即使您使用了alter table tbl auto_increment = 1 MySQL也会自动将auto_increment值设置为MAX(column)+1 。 这是一个非常有效的理由限制 – 复制密钥永远不会结束。
首先,我认为这是一个可怕的想法,如果你这样做,你只是要求麻烦。
其次,我不确定是否完全可以将auto_increment计数器重新启动回1,因为MySQL有充分的理由阻止它。
我认为你最好的办法就是将数据导出到一个文件(mysql -Bse“select * from table”将默认分隔的导出选项卡),并将数据导入到一个新表中,重写ID使用awk / perl编号,或者重新导入没有ID列的数据,并让它在新表上从1开始auto_increment。 请注意,您将不得不修复其他表格与此表格的ID号码之间的任何关系。