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

MySQL AUTO_INCREMENT 自動遞增完整指南:初始值、手動插入、刪除重設行為詳解

     編輯:MySQL 綜合教學

MySQL AUTO_INCREMENT 自動遞增完整指南

基本建表語法

CREATE TABLE teacher(
    t_id INT PRIMARY KEY AUTO_INCREMENT,
    t_name VARCHAR(20),
    t_class VARCHAR(20),
    days TINYINT UNSIGNED
);
建表示例

核心特性與實驗驗證

1. 設定起始值

ALTER TABLE tab_name AUTO_INCREMENT = 10;

後續插入資料 ID 從 10 開始遞增。

2. 手動插入大數值 ID 的影響

INSERT INTO t1 VALUES(21, '李四', '0223', 23);
-- 再插入不指定 ID 的資料,將從 22 開始
手動插入大 ID 後遞增行為

3. 刪除最大 ID 後的遞增行為

  • 刪除 ID 21、22 後插入新資料 → ID 從 23 開始(不會重複使用已刪除的 ID)
  • 此特性保證 ID 單調遞增,避免業務邏輯混淆
刪除最大 ID 後遞增行為

4. 重設 AUTO_INCREMENT 值的限制

-- 刪除 21、22 後重設為 10
ALTER TABLE t1 AUTO_INCREMENT = 10;
-- 新插入資料從 10 開始
重設 AUTO_INCREMENT 後行為

5. 關鍵限制:無法設定小於現有最大值

若表中已有 ID=10 的資料,執行 ALTER TABLE t1 AUTO_INCREMENT = 5 不會生效,下一個 ID 仍會從現有最大值+1 開始。

設定值小於現有最大值無效

常見問題彙整

問題解決方案
如何設定自動遞增初始值?ALTER TABLE table_name AUTO_INCREMENT = n;
如何將既有欄位改為自動遞增?ALTER TABLE questionlib MODIFY id INT(11) AUTO_INCREMENT;
需保留原有 ID 並重新排序?建立新表複製結構→加入 AUTO_INCREMENT→分批插入資料
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved