MySQL 快速將不連續進行修復為連續

jopen 8年前發布 | 6K 次閱讀 MySQL 數據庫服務器

MySQL 表內的數據不連續情況可能有以下原因導致:

 

    1、insert語句不管是否成功,都會增加AUTO_INCREMENT值。

    2、進行了delete相關操作。

 

    3、rollback相關。

不管是因為什么情況導致,領導有這個需求,我們只能照做!  (# -   -)

 

約定:

            源表:  source

         目標表: destination

 

偽SQL語句:

        insert into destination (“字段")  select 字段 from source;

 

    這樣就簡單的完成了從一個表到另外一個表的復制。而我們可以利用語法上的甜頭,將自增長的主鍵和其他相關的字段忽略掉。從而讓系統來幫我們實現插入的連續性。

 

其次:

    在導入完成后,使用count(*) 與select 自增長主鍵 from 表 order by 主鍵 desc limit 1 結合來判斷表內數據是否連續。

 

最后:

    檢查表的自增長值是否為最后一條信息的id + 1 。 否則手動更改一下。

    再將目標表與源表名稱對調。任務完成!

 

以上!

來自: http://my.oschina.net/CandyMi/blog/601945

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!