CREATE TABLE teacher(
t_id INT PRIMARY KEY AUTO_INCREMENT,
t_name VARCHAR(20),
t_class VARCHAR(20),
days TINYINT UNSIGNED
);
ALTER TABLE tab_name AUTO_INCREMENT = 10;
後續插入資料 ID 從 10 開始遞增。
INSERT INTO t1 VALUES(21, '李四', '0223', 23); -- 再插入不指定 ID 的資料,將從 22 開始
-- 刪除 21、22 後重設為 10 ALTER TABLE t1 AUTO_INCREMENT = 10; -- 新插入資料從 10 開始
若表中已有 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→分批插入資料 |