如何在MySQL中实现主键自增?

MySQL中的主键自增指主键列的值自动增加,通常用于自动为新记录分配唯一标识。

实现主键自增有两种方式:

  1. 使用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。

  1. 在主键上创建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属性,需要注意:

  1. 只能用于整数类型的列上,通常是主键。
  2. 列必须声明为NOT NULL。
  3. 一个表中只能有一个AUTO_INCREMENT列。
  4. 修改表结构不会重置AUTO_INCREMENT值,它会持续增长。
  5. AUTO_INCREMENT可以通过INSERT或UPDATE设置初始值或增量。
  6. DROP TABLE并重建可以重置AUTO_INCREMENT值。
  7. 不要使用DELETE方案删除所有的行,这不会影响AUTO_INCREMENT值。

主键自增非常实用,可以自动为新记录分配唯一标识,简化INSERT语句,同时也绑定了主键唯一性,提高了数据完整性。