![](/img/trans.png)
[英]Using variable in setting mysql INNODB AUTO_INCREMENT table value
[英]Updating auto_increment value in an InnoDB table
簡短版:我可以以編程方式更新表上的auto_increment值嗎? 我正在嘗試通過mysql init_file來執行此操作,因此它會在啟動時發生,但我看不到它起作用。
USE theDb;
SELECT max(maxid) FROM (SELECT max(RegistrationId)+1 maxid FROM Registration
UNION
SELECT max(RegistrationId)+1 maxid FROM RegistrationArchive) t into @maxId;
ALTER TABLE Registration AUTO_INCREMENT=@maxId;
較長的版本:我有一個帶有InnoDB表的mysql數據庫。 一個表(包含注冊信息)具有一個自動遞增列,當處理一行時,它將被復制到第二個存檔表,並從第一個存檔表中刪除。 存檔表沒有自動遞增列。 (順便說一句,不是我的設計...)
問題是,由於某種原因(很少見)重新啟動數據庫時,第一個表將重新計算下一個增量值-InnoDB的功能。 該表通常是空的或很小,並且計算出的下一個增量將對應於已使用且在存檔表中的ID。 數據被移到了可以的存檔位置,但之后的后續處理將無法正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.