8.MySQL的自增(AUTO_INCREMENT)

1.为什么需要自增

为数据表设置主键约束后,每次插入记录时,如果插入的值已经存在,会插入失败。为主键生成自动增长的值可以解决这种问题。

2.语法

字段名 数据类型 AUTO_INCREMENT

3.注意

  1. 一张表中只能有一个自动增长字段
  2. 该字段的数据类型是整数类型
  3. 必须定义为键
  4. 为自动增长字段插入NULL、0、DEFAULT或在插入时省略该字段,该字段就会使用自动增长值
  5. 若插入的是一个具体值,则不会使用自动增长值
  6. 自动增长值从1开始自增,每次加1
  7. 若插入的值大于自动增长的值,则下次插入的自动增长值会自动使用最大值加1
  8. 若插入的值小于自动增长值,则不会对自动增长值产生影响。
  9. 使用DELETE删除记录时,自动增长值不会减小或填补空缺。

4.演示

CREATE DATABASE my_sql;
USE my_sql;
CREATE TABLE student (
  sid INT PRIMARY KEY AUTO_INCREMENT,
  sname VARCHAR (32)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO student(sname) VALUES ('stu1');
INSERT INTO student VALUES (0,'stu2');
INSERT INTO student VALUES (4,'stu3');
INSERT INTO student(sname) VALUES ('stu4');
INSERT INTO student VALUES (3,'stu3');
DELETE FROM student WHERE sid=5;
INSERT INTO student(sname) VALUES ('stu4');

5.查看自动增长值

语法:

SHOW CREATE TABLE student;

运行结果:

CREATE TABLE `student` (
  `sid` int(11) NOT NULL AUTO_INCREMENT,
  `sname` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

6.修改自动增长

ALTER TABLE student AUTO_INCREMENT = 10;
INSERT INTO student(sname) VALUES ('stu5');

7.删除自动增长

ALTER TABLE student MODIFY sid INT;
INSERT INTO student VALUES (11,'stu6');
-- 下面这行无法运行,因为自增被删除,必须手动插入主键
INSERT INTO student(sname) VALUES ('stu7');

8.添加自动增长

ALTER TABLE student MODIFY sid INT UNSIGNED AUTO_INCREMENT;
INSERT INTO student(sname) VALUES ('stu7');
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值