Mysql中的auto_increment关键字

Mysql中的auto_increment关键字

create table mydatabase.test
(id int not null auto_increment PRIMARY key,
name varchar(20))auto_increment = 3;

#auto_increment = 3是指定一个自增的初始值

insert into mydatabase.test(name) VALUES
('littlelawson'),
('shakespere');

select * from mydatabase.test

drop table mydatabase.test;

这里写图片描述

二.关键字:identity

1.表示该字段被标识,也就是自增长,在插入数据的时候该字段不用赋值,系统会自己为其赋值。

create table a
(id int identity(1,2),
name varchar(10)
);

报错如下:

mysql> create table a
    -> (id int identity(1,2),
    -> name varchar(10));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identity(1,2),
name varchar(10))' at line 2

错误原因:MySQL不支持identity关键字。但是mysql具有相同的特性,使用的关键字是auto_increment。
当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况

  • 情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
  • 情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。

2.注意

  • AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列
  • AUTO_INCREMENT数据列必须具备NOT NULL属性。
  • 可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值
  • 可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值,默认的起始值是1

猜你喜欢

转载自blog.csdn.net/liu16659/article/details/80847195