小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
您的位置:首页 > 后端编程 > 数据库 > mysql

mysql的自动增长auto_increment;开始值更改,每次自增量更改

分类: mysql46个赞

我们通常希望在每次插入新记录时,自动地创建主键字段的值。我们可以在表中创建一个自动增长 auto-increment 字段。

自动增长 auto-increment 的特点

(1)默认情况下,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。自动增长的值就不会有重复,适合用来生成唯一的id。在MySQL中只要是自动增长列必须是主键


(2)设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。


(3)只要是自动增长列auto_increment必须是主键,但是主键不一定是auto_increment

拓展阅读:mysql主键primary key和联合主键,它们的特点,作用和选用原则


(4)自动增长列通过插入null值让其递增

-- 自动增长列可以插入null,让列的值自动递增
mysql> insert into stu25 values (null,'berry');
Query OK, 1 row affected (0.00 sec)

(5)自动增长列可以直接插入数字

-- 插入数据
mysql> insert into stu25 values (3,'tom');   -- 可以直接插入数字
Query OK, 1 row affected (0.06 sec)

(6)自动增长列的数据被删除,默认不再重复使用。truncate table删除数据后,再次插入从1开始


(7)AUTO_INCREMENT数据列必须具备NOT NULL属性。


(8)AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效。


(9)要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:

alter table Persons AUTO_INCREMENT=100


(10)要规定自增长 列以 20 起始且递增 10,请把 auto-increment 改为 auto-increment(20,10)

AUTOINCREMENT(20,10)


(11)auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1 .. 65535

SET auto_increment_offset=2;   ##自增量每次从2开始


(12)auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

SET auto_increment_increment=10;   #自增量每次增加的值改为10


注意:

  1. offset和increment可以在全局以及session级别设置这2个变量

  2. 数据库引擎innodb的,它不支持设置修改初始值offset,只有MyISAM支持,但支持increment自增量

SET  session auto_increment_offset=2;        ##自增量每次从2开始
SET  session auto_increment_increment=10;   #自增量每次增加的值改为10


小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> mysql的自动增长auto_increment;开始值更改,每次自增量更改