使用mysql将auto_increment改为较低的未使用数字

时间:2014-10-23 23:50:46

标签: mysql

我有一个old网站和一个new网站... old网站上有4500个订单,由一个带有订单ID主键的表进行跟踪。

启动new网站后,会在将old订单迁移到该网站之前启动该网站。为实现此目的,auto_increment订单表上的new值设置为5000,因此所下的任何new订单都不会与old ID冲突。

这允许订单继续放在new网站上,一切都很好......

现在,我想运行我的导入脚本,将old订单导入new网站。

是否可以暂时将auto_increment订单表中的new值降低到我想要的订单ID?

免责声明:这是从基于Drupal 5 Ubercart的站点迁移到基于Drupal 7 Commerce的站点,因此我(轻松)无法控制组装新站点时涉及的复杂查询订单,并且不能简单地(AFAIK)在组装订单时提供订单ID,因为系统在创建订单时始终引用表中的下一个可用主键值。我可以轻松地使网站脱机运行脚本,因此没有任何内容不同步。

2 个答案:

答案 0 :(得分:3)

要导入“旧”订单,您不需要依赖自动增量ID - 它们已经有了ID,您可能想要保留它们!

修改导入脚本,将完整的旧记录插入新表,id和all!只要id不碰撞,就不应该成为问题。

答案 1 :(得分:1)

您可以随时运行ALTER TABLE table_name AUTO_INCREMENT = 1;(或您想要的任何数字)。

问题是:你想要吗?

如果您的数据库中已有任何记录,那么最好确保下一个自动增量值大于大于数据库中的最大值