目录

1.为什么需要自增

2.语法

3.注意

4.演示

5.查看自动增长值

6.修改自动增长

7.删除自动增长

8.添加自动增长


1.为什么需要自增

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

2.语法

字段名 数据类型 AUTO_INCREMENT

3.注意

  1. 一个表中只能有一个自动增长字段

  2. 该字段的数据类型是整数类型

  3. 必须定义为键

  4. 若为自动增长字段插入NULL、0、DEFAULT或在插入时省略该字段,该字段就会使用自动增长值;

  5. 若插入的是一个具体值,则不会使用自动增长值

  6. 自动增长值从1开始自增,每次加1。

  7. 若插入的值大于自动增长的值,则下次插入的自动增长值会自动使用最大值加1;

  8. 若插入的值小于自动增长值,则不会对自动增长值产生影响。

  9. 使用DELETE删除记录时,自动增长值不会减小或填补空缺。

4.演示

CREATE DATABASE mahaiwuji;
USE mahaiwuji;
CREATE TABLE student (sid INT PRIMARY KEY AUTO_INCREMENT,sname VARCHAR (32)
) ENGINE = INNODB DEFAULT CHARSET = utf8;INSERT INTO student(sname) VALUES ('码海无际1');
INSERT INTO student VALUES (0,'码海无际2');
INSERT INTO student VALUES (4,'码海无际3');
INSERT INTO student(sname) VALUES ('码海无际4');
INSERT INTO student VALUES (3,'码海无际3');
DELETE FROM student WHERE sid=5;
INSERT INTO student(sname) VALUES ('码海无际4');

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 ('码海无际5');

7.删除自动增长

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

8.添加自动增长

ALTER TABLE student MODIFY sid INT UNSIGNED AUTO_INCREMENT;
INSERT INTO student(sname) VALUES ('码海无际7');

8.MySQL的自增(AUTO_INCREMENT)相关推荐

  1. mysql中自增auto_increment功能的相关设置及问题

    1. mysql中的自增auto_increment功能相信每位phper都用过,本文就为大家分享一下mysql字段自增功能的具体查看及设置方法 mysql中的自增auto_increment功能相信 ...

  2. mysql 重置自增长_怎么重置mysql的自增列AUTO_INCREMENT初时值

    重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_IN ...

  3. 为什么 MySQL 的自增主键不单调也不连续

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 转自:真没什么逻辑/Draveness 当我们在使用关系型数据库时 ...

  4. mysql insert 自增_MySQL自增列插入0值的解决方案

    在将数据库从MSSQL迁移到MySQL的过程中,基于业务逻辑的要求,需要在MySQL的自增列插入0值.在MSSQL中是这样完成的: string sql;sql = " set identi ...

  5. 无法去掉自增标识_为什么 MySQL 的自增主键不单调也不连续

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

  6. MySQL 使用自增ID主键和UUID 作为主键的优劣比較具体过程(从百万到千万表记录測试)...

    測试缘由 一个开发同事做了一个框架.里面主键是uuid.我跟他建议说mysql不要用uuid用自增主键,自增主键效率高,他说不一定高,我说innodb的索引特性导致了自增id做主键是效率最好的,为了拿 ...

  7. mysql 主键 下一个值_INNODB自增主键的一些问题 vs mysql获得自增字段下一个值

    root@localhost : test 04:23:28>show variables like 'innodb_autoinc_lock_mode'; +----------------- ...

  8. mysql 原生 添加数据_手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  9. mysql自增_面试官:为什么 MySQL 的自增主键不单调也不连续?

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

最新文章

  1. Virtual Lab. For Probability and Statistics
  2. 使用php分页类实现简单分类
  3. python for循环中累加变量是否要清零
  4. Mac 如何恢复出厂设置
  5. mysql master 配置_MySQL双Master配置的方法详解
  6. 奇妙的数学动图,美到令人窒息!
  7. java6虚拟机_Java 虚拟机之六:javap工具
  8. Java 10新特性
  9. 【Machine Learning】监督学习、非监督学习及强化学习对比
  10. 什么是最佳的视频用户体验?阿里云视频服务四大体验优化实践
  11. 如何使用 AirPlay 在 Mac 上使用 HomePod?
  12. Python3学习笔记18-访问限制
  13. Typora图片显示不出来
  14. cocos2dx 精灵增加触摸事件
  15. 【数据库学习】17 视图
  16. 5类人最适合做程序员,你属于哪一类?
  17. 杜甫ndows 10怎么安排五笔,燕字五笔怎么打|燕子|杜甫|出处_诗词_综合试卷网_中国教育考试门户网站...
  18. 小程序转uniapp——disabled
  19. 未来交通 | 中国二十城出行者“MaaS及共享出行体验”初探索
  20. 极客时间_week03_work

热门文章

  1. 马克思主义哲学是否只是“抄袭”和断章取义了别人的思想
  2. 厚物科技PXIe机箱PXI机箱PXIe笔记本HW-1753
  3. 双向 LSTM-CRF 实现命名实体识别
  4. 高效能人士的七个习惯-第五章-阅读
  5. 用苹果M1电脑,打Windows游戏,是种什么体验?
  6. Postgres实现Merge
  7. Linux用grep查询最后一次匹配
  8. 用at命令编写简单的计划任务/cron计划任务
  9. Ubuntu 20.04 安装QQ、微信等
  10. 手机摄像头的分类,技术指标及工作原理