MySQL中的主键自增指主键列的值自动增加,通常用于自动为新记录分配唯一标识。
实现主键自增有两种方式:
- 使用AUTO_INCREMENT关键字:
sql
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(20),
PRIMARY KEY (id)
);
此时,id列将作为主键,并自动增长,第一条记录将获得值1,以后的记录依次增加。
插入记录:
sql
INSERT INTO users (name) VALUES ('John');
INSERT INTO users (name) VALUES ('Mary');
id列将自动获得值1和2。
- 在主键上创建AUTO_INCREMENT序列:
sql
CREATE TABLE users (
id INT,
name VARCHAR(20),
PRIMARY KEY (id)
);
ALTER TABLE users
MODIFY id INT AUTO_INCREMENT;
此时,id列同样具有自动增长属性,插入数据的效果与第一种方式相同。
关于AUTO_INCREMENT属性,需要注意:
- 只能用于整数类型的列上,通常是主键。
- 列必须声明为NOT NULL。
- 一个表中只能有一个AUTO_INCREMENT列。
- 修改表结构不会重置AUTO_INCREMENT值,它会持续增长。
- AUTO_INCREMENT可以通过INSERT或UPDATE设置初始值或增量。
- DROP TABLE并重建可以重置AUTO_INCREMENT值。
- 不要使用DELETE方案删除所有的行,这不会影响AUTO_INCREMENT值。
主键自增非常实用,可以自动为新记录分配唯一标识,简化INSERT语句,同时也绑定了主键唯一性,提高了数据完整性。