Mysql自增类型serial

  最近看前辈们的代码,发现了一个没有接触过的类型:serial。

  下面是关于serial的官方介绍:

SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
SERIAL DEFAULT VALUE in the definition of an integer column is an alias for NOT NULL AUTO_INCREMENT UNIQUE.

  下面以我初过四级的水平解释一下:

SERIAL 是一个拥有非空、自增、唯一性等约束的长整型无符号数的别名。
整型数列SERIAL 的默认值是非空、自增、唯一等约束的别名

  也就是类型为serial的值即拥有非空、自增、唯一性等约束!


  当然,也有别的自增方法,例如使用关键字auto_increment

create table t_user(
    id int(10) primary key auto_increment,
    name varchar(32) not null
);

  在使用自增类型之后,测试时往往会遇到一些问题。编写测试类插入数据时,数据就会自增,等到项目上线时,数据库的自增已经进行了一部分了。

  即使你将所有数据全部删除。下次插入仍然会接着之前的数据累加,如下图:
在这里插入图片描述
  如上图,即使我提前设置sum为0,再插入数据也不是以0为起点。

– 清除所有的记录,并且索引号从0开始
TRUNCATE TABLE questions RESTART IDENTITY CASCADE;

  执行上面的语句,再进行插入,自增序列即从0开始。

猜你喜欢

转载自blog.csdn.net/qq_33247435/article/details/100095348