通过给字段添加 auto_increment 属性来实现主键自增长。可以自定义起始值。注意delete和truncate之后的自增长的区别。

自增长约束

MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长

通俗点说,就是自动编号

语法:

字段名 数据类型 primary key auto_increment

示例:

create table t_user1( 
  id int primary key auto_increment, 
  name varchar(20) 
);

演示:

-- 选用mydb1数据库
use mydb1;  

-- 创建一个表
  -- 自增长约束
create table t_user1( 
  id int primary key auto_increment, 
  name varchar(20) 
);

  -- 增加表的数据,但是没有前面的序号,只有名字
insert into t_user1 value(NULL,'张三');

insert into t_user1(name) value('李思') ;

自增长运行效果

从上面的例子不难看出,自动编号是从1开始逐步增长,步长为1。它有以下特点:

  • 默认情况下,auto_increment的初始值是 1,每新增一条记录,字段值自动加 1。

  • 一个表中只能有一个字段使用 auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)

  • auto_increment约束的字段必须具备 NOT NULL 属性。

  • auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等。auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。

指定自增字段初始值

如果第一条记录设置了该字段的初始值,那么新增加的记录就从这个初始值开始自增。例如,如果表中插入的第一条记录的 id 值设置为 5,那么再插入记录时,id 值就会从 5 开始往上增加。

指定自增字段初始值有两种方式。

方式一:

-- 方式1,创建表时指定
create table t_user2 ( 
  id int primary key auto_increment, 
  name varchar(20)
)  auto_increment=100;

指定自增字段初始值

方式二:

-- 方式2,创建表之后指定
create table t_user3 ( 
  id int primary key auto_increment; 
  name varchar(20)
);

alter table t_user2 auto_increment=100;

注意

deletetruncate在删除后自增列的变化

  • delete数据之后自动增长从断点开始,例如前面已经创建了1,2,3,用delete删除了所有的数据之后,再增加,第一个就是编号4

  • truncate数据之后自动增长从默认起始值开始,只要用truncate情况了,就是从1开始编号


声明:内容来源于B站视频《2022黑马程序员最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程》,博客内容仅作学习参考使用。



博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/mysql7.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 06 月 05 日
如果觉得我的文章对你有用,请随意赞赏