1. primary key 主键 和 auto_increment 自增

  • primary key: 约束(不能重复且不能为空)-> 可以实现快速查找
  • auto_increment: 内容自增(例如 id 自动增加)-> 如果使用 auto_increment 一定要将该字段设置为主键
  • auto_increment 一般和 primary key 搭配着使用
  • 一个表中正能有一个主键 和 一个自增列

# 写法一

create table t1(
    id int auto_increment primary key,
    name varchar(10)
engine=innodb default charset=utf8;

# 写法二

create table t1(
    id int auto_increment,
    name varchar(10),
    primary key(id)
) engine=innodb default charset=utf8;

  • 虽然一个表中只能有一个主键,但是一个主键可以由多个列组成 -> 很少使用了解就可以了

create table t1(
    id int auto_increment,
    pid int not null,
    name varchar(10),
    primary key(id,pid)
)engine=innodb default charset=utf8;


2.修改 auto_increment 自增序列的起始值

  • 如果将id设置为主键和自增列的话,那么此时再插入一条数据且该数据的id会接着上一次的id开始自增,如果不想跟着上一个所删除的序列开始自增,而是按顺序的往下自增,这样可以通过修改自增序列的起始值来实现

    • 通过查看表是如何创建的可以得到下一个自增序列

# show create table 表名;

show create table t1;


  • 通过修改表的SQL语句修改表中的下一个自增序列

# alter table 表名 auto_increment = 下一个自增序列;

alter table t1 auto_increment = 2;