繁体   English   中英

使用mysql将auto_increment减少到较低的未使用数字

[英]auto_increment to a lower unused number with mysql

我有一个old网站和一个new网站... old网站上放置了4500个订单,并通过带有主键作为订单ID的表进行跟踪。

启动new网站时,它是在将old订单迁移到其中之前启动的。 为此,将new订单表上的auto_increment值设置为5000,这样放置的任何new订单都不会与old ID发生冲突。

这样可以继续在new网站上下订单,一切都很好...

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

是否可以将new订单表上的auto_increment值暂时降低至所需的订单ID?

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

导入“旧”订单时,您不需要依赖自动增量ID,因为它们已经有ID,您可能希望保留这些ID!

修改您的导入脚本,以将完整的旧记录插入到新表,id和全部中! 只要id不冲突,就不成问题。

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

问题是:您是否愿意

如果数据库中已经有任何记录,则最好确保下一个自动增量值大于数据库中已经存在的最大值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM