AUTO_INCREMENT 定义要点
- 建表时给整型列加 AUTO_INCREMENT,通常同时设 PRIMARY KEY
- 列类型须为整数,常用 INT 或 BIGINT,推荐 UNSIGNED 扩上限
- 插入时该列写 NULL 或省略,由数据库自动生成下一个值
- 自增值严格递增且唯一,但不保证连续(删行会留空洞)
- 一张表只能有一个 AUTO_INCREMENT 列
- 写了具体值会采用你给的值,并可能推高后续自增起点
AUTO_INCREMENT 定义示例
CREATE TABLE insect (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
collected DATE NOT NULL,
PRIMARY KEY (id)
);
-- 自增列写 NULL,由数据库分配
INSERT INTO insect (id, name, collected)
VALUES (NULL, '蜻蜓', '2026-03-12');
-- 或干脆省略该列
INSERT INTO insect (name, collected)
VALUES ('蝉', '2026-03-15');
避坑提醒:自增列建议用 BIGINT UNSIGNED,单表数据量过 21 亿时 INT 会溢出;上线前定好类型,后期改类型要锁表。