首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 修改自增主鍵起始值:ALTER TABLE AUTO_INCREMENT 實戰

     編輯:MySQL 綜合教學

核心語法

ALTER TABLE table_name AUTO_INCREMENT = new_value;

參數說明

  • table_name:目標表名
  • new_value:新的自增起始值(下一條 INSERT 將使用此值)

關鍵限制

  • new_value 必須 ≥ 當前最大自增值 + 1
  • 若設定值 ≤ 現有最大值,語句執行成功但不生效,下一條仍按現有最大值+1
  • 不支援減小自增值(需重建表或 TRUNCATE)

實戰範例

-- 查看當前自增值
SHOW TABLE STATUS LIKE 'users'\G
-- Auto_increment: 101

-- 設定下一條 ID 為 1000
ALTER TABLE users AUTO_INCREMENT = 1000;

-- 驗證
INSERT INTO users (name) VALUES ('test');
SELECT * FROM users WHERE id = 1000; -- 成功

常見應用場景

  1. 分庫分表 ID 隔離:不同分片設定不同起始區間(如 1000000、2000000)
  2. 數據遷移後銜接:導入歷史數據後,設定自增值避免主鍵衝突
  3. 測試環境重置:配合 TRUNCATE TABLE 重置自增計數器
  4. 業務語義 ID:訂單號從特定數字段開始(如 2023000001)

注意事項

  • InnoDB 重啟後會重新計算自增值(SELECT MAX(id)+1),5.7.23+ 持久化自增值可避免
  • 主從複制環境下,主庫修改自增值會同步到從庫
  • 配合 auto_increment_offset、auto_increment_increment 實現雙主/多主 ID 不衝突

相關參數

SHOW VARIABLES LIKE 'auto_inc%';
-- auto_increment_increment: 步長(預設 1)
-- auto_increment_offset:  偏移量(預設 1)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved