簡體   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