2020年11月14日 23:30 __ _ _ _ _

文章配图

你对我的百般注解和识读,并不构成万分之一的我,却是一览无遗的你自己。

——三毛
文章配图

杂谈
在网上看见关于一首歌的评论,共勉:十年前,你周围的人会根据你父母对待你。十年后,你周围的人会根据你对待你的父母和你的孩子!没有不弯的路,没有不谢的花。通往成功的路不会平坦宽阔,实现自已的梦想不会一帆风顺,人生不如意十有八九,但这些都是暂时的。花开花落,潮起潮落,一切都会有终结的!

歌曲为:《路》-藤竹京

**自增长
**

自增长:当对应的字段不给值(NULL)或者给默认值时,该字段会自动的被系统触发,系统会从当前字段中已有的最大值再进行+1操作,得到一个新的在不同的字段。
自增长通常是跟主键搭配。

新增自增长

  1. 任何一个字段要做自增长必须前提是本身是一个索引(key一栏有值)。

  2. 自增长字段必须是数字(整型)

  3. 一张表最多只能有一个自增长,和主键一起搭配。

关于相关新建自增长表语句:


create table my_auto(id int auto_increment comment'自动增长',name varchar(10) not null)charset utf8;-- 错误,
create table my_auto(id varchar(1) primary key auto_increment comment'自动增长',name varchar(10) not null)charset utf8;-- 错误
create table my_auto(id int primary key auto_increment comment '自动增长',name varchar(10) not null)charset utf8;-- 正确

自增长使用

当自增长被给定的值为NULL,或者默认值的时候会触发自动增长。
相关自增长使用的语句:


#触发自增长insert into my_auto(name) values('小君');insert into my_auto values(null,'小黑');insert into my_auto values(default,'小白');-- 指定数据insert into my_auto values(6,'小coco');insert into my_auto values(null,'小C');

查看运行结果:

文章配图

如上图运行结果可知: 1.自增长起始为1,且每次加1。 2.自增长如果对应的字段输入了值,那么自增长失效,但是下一次还是能够正确的自增长,即值加1。

修改自增长

自增长如果是涉及到字段改变,则必须先删除自增长,后增加,因为一张表有且只能有一个自增长。

修改当前自增长已经存在的值:修改只能比当前已有的自增长的最大值大,不能小,否则不会生效。

语句形式:alter table 表名 auto_increment = 值;

示例:


-- 修改表选项的值alter table my_auto auto_increment =4;  -- 向下修改alter table my_auto auto_increment =10;  -- 向上修改

向下修改:

文章配图

向上修改:

文章配图

从底层原理来讲:为啥自增长是从1开始而不是0呢?以及为什么每次都是自增1呢?

To:所有系统的表现(如字符集,校对集)都是由系统内部的变量进行控制的。

查看自增长对应的变量:show variables like ‘auto_increment%’;

如下:第一个为步长;第二个为起始值。

文章配图

可以修改变量实现不同的效果:修改是针对整个数据修改,而不是单张表(修改是会话级)

语句形式:set auto_increment_increment=5; — 一次修改5

删除自增长

自增长是字段的一个属性:可以通过modify来进行修改(保证字段没有auto_increment即可)

语句形式:alter table 表名 modify 字段 类型;

文章配图

文章配图

往期推荐:

大战MySQL主键及其操作 2020-11-10
文章配图

大战SQL列类型及其列属性 2020-11-09
文章配图

趣味C语言(C语言游戏小飞机大战)

2020-11-12


文章配图

为你,千千万万遍.

关注 程序员Bob 公众号,与你一起终生学习

文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__