点击上方蓝字关注"程序员Bob"
你对我的百般注解和识读,并不构成万分之一的我,却是一览无遗的你自己。
——三毛
杂谈
在网上看见关于一首歌的评论,共勉:十年前,你周围的人会根据你父母对待你。十年后,你周围的人会根据你对待你的父母和你的孩子!没有不弯的路,没有不谢的花。通往成功的路不会平坦宽阔,实现自已的梦想不会一帆风顺,人生不如意十有八九,但这些都是暂时的。花开花落,潮起潮落,一切都会有终结的!
歌曲为:《路》-藤竹京
自增长
自增长:当对应的字段不给值(NULL)或者给默认值时,该字段会自动的被系统触发,系统会从当前字段中已有的最大值再进行+1操作,得到一个新的在不同的字段。
自增长通常是跟主键搭配。
新增自增长
任何一个字段要做自增长必须前提是本身是一个索引(key一栏有值)。
自增长字段必须是数字(整型)
一张表最多只能有一个自增长,和主键一起搭配。
关于相关新建自增长表语句:
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 字段 类型;
往期推荐:
为你,千千万万遍.
关注程序员Bob公众号,与你一起终生学习
一键三连,就差你了