目录

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. Tech.Ed2005 讲义下载地址
  2. 用于分子生成的数据高效性图语法学习
  3. 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...
  4. linux基础文件管理基础命令
  5. 开课吧python好吗-如何选择python培训机构?开课吧python培训怎么样?
  6. 河南理工大学新生挑战赛【部分题题解】
  7. 有一种情人节叫,别人家的情人节......
  8. hive sql循环_hive存储过程
  9. llinux的shell脚本编程详解
  10. Object-C学习代码【简单的Car程序】
  11. python整商运算符_python中的运算符
  12. 用eclips连hadoop报Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtoco
  13. 编写第一个Java程序:helloworld
  14. Android学习小Demo(14)Android中关于PopupWindow的使用
  15. Windows Server 2008搭建单域环境
  16. java batik 字体文件_用 Apache batik 1.10 把svg代码转成png图片,文字丢失???
  17. 打开SVN server图形化管理界面
  18. 输入数字怎么变成大写python_用Python将数字转换为中文大写
  19. HTML+CSS大作业——中华美德文化(6页) HTML+CSS+JavaScript 中国传统美德文化网页HTML代码
  20. 元气骑士超级科学计算机有什么用,元气骑士超级科学计算机攻略 天赋及获取方式汇总...

热门文章

  1. iOS开发之时间格式化
  2. 后人类社会形态“元宇宙”来临,MECHANIC打造元宇宙游戏平台
  3. php 去掉css样式,css虚线样式怎么去掉
  4. 使用js控制input填写的限制,比如只能写数字和英文,不能输入中文
  5. 软件测试培训学习哪些内容?
  6. mysql5.7官网直译锁操作优化--并发添加,元数据锁,外部闭锁
  7. shm(共享内存API)
  8. 夜读2013年度国家信息技术研发选题申报有感
  9. oracle parameter文件
  10. 判断推理之图形推理 1