作用

某个字段值自增

关键字

AUTO_INCREMENT

特点

  • 一个表最多只能有一个自增长列
  • 当需要产生唯一标识符或顺序值时,可设置自增长
  • 自增长列约束的列必须是键列(主键列,唯一键列
  • 自增约束的列的数据类型必须是整数类型
  • 如果自增列指定了 0 和 null,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接赋值为具体值。

    在创建表时添加自增列设置

    ```sql create table employee( eid int auto_increment, ename varchar(20) );

    Incorrect table definition; there can be only one auto column and it must be defined as a key

create table employee( eid int primary key, ename varchar(20) unique key auto_increment );

Incorrect column specifier for column ‘ename’ 因为ename不是整数类型

  1. ```sql
  2. CREATE TABLE test7(
  3. id INT PRIMARY KEY AUTO_INCREMENT,
  4. last_name VARCHAR(15)
  5. );
  6. INSERT INTO test7(last_name)
  7. VALUES('Tom');
  8. #当我们向主键(含AUTO_INCREMENT)的字段上添加0 或 null时,实际上会自动的往上添加指定的字段的数值
  9. INSERT INTO test7(id,last_name)
  10. VALUES(0,'Tom');
  11. INSERT INTO test7(id,last_name)
  12. VALUES(NULL,'Tom');
  13. INSERT INTO test7(id,last_name)
  14. VALUES(10,'Tom');

开发中,一旦主键作用的字段上声明有AUTO_INCREMENT,则我们在添加数据时,就不要给主键对应的字段去赋值了。

在创建表之后添加自增列设置

  1. CREATE TABLE test8(
  2. id INT PRIMARY KEY ,
  3. last_name VARCHAR(15)
  4. );
  5. DESC test8;
  6. ALTER TABLE test8
  7. MODIFY id INT AUTO_INCREMENT;

在创建表之后删除自增列设置+

  1. #alter table 表名称 modify 字段名 数据类型 auto_increment;#给这个字段增加自增约束
  2. alter table 表名称 modify 字段名 数据类型; #去掉auto_increment相当于删除
  1. ALTER TABLE test8
  2. MODIFY id INT;
  3. DESC test8;