MySQL AUTO_INCREMENT 简介

可使用复合索引在同一个数据表里创建多个相互独立的自增序列,具体做法是这样的:为数据表创建一个由多个数据列组成的PRIMARY KEY OR UNIQUE索引,并把AUTO_INCREMENT数据列包括在这个索引里作为它的最后一个数据列。这样,这个复合索引里,前面的那些数据列每构成一种独一无二的组合,最末尾的AUTO_INCREMENT数据列就会生成一个与该组合相对应的序列编号。

我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。MySQL支持多种数据表,每种数据表的自增属性都有差异,这里将介绍各种数据表里的数据列自增属性。

1 用法:

CREATE TABLE test
(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(15) NOT NULL
)AUTO_INCREMENT = 100;

可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。

可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值。

说明:

(1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。

(2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。

(3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。

(4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。

(5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。

时间: 2024-08-04 05:47:15

MySQL AUTO_INCREMENT 简介的相关文章

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

MySQL auto increment - the MySQL auto_increment attribute

MySQL FAQ: How do I define a MySQL auto increment field? Here's an example of the way I normally create a MySQL auto increment (auto_increment) field: create table pizzas ( id int auto_increment not null, name varchar(32) not null, primary key (id) )

MySQL Auto_Increment属性应用

我们经常要用到唯一编号,以标识记录.在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成.MySQL支持多种数据表,每种数据表的自增属性都有差异,这里将介绍各种数据表里的数据列自增属性. 1 用法: CREATE TABLE test ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(15) NOT NULL )AUTO_INCREMENT = 100; 可在建表时可用"AUTO_IN

谨慎使用MySQL auto_increment

在使用MySQL中,经常会在表中建立一个自增的ID字段,利用自增ID能够快速建立索引,也是MySQL官方比较推荐的一种方式,但是,这种方式在大量数据且配置主从时,可能会出现由于自增ID导致同步失败的情况 首先需要了解一点 Mysql主从同步主要通过bin log来同步,而MySQl中bin log最大值为1G, 这种情况触发条件如下: 1.数据库配置主从同步 2.表存在自增ID 3.表数据量大, 如果在主上执行insert into-select-类SQL,该SQL事物超过1G时,MySQL会将

MySQL数据库基础(一)——MySQL数据库简介

MySQL数据库基础(一)--MySQL数据库简介 一.MySQL简介 1.MySQL简介 MySQL是一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.目前MySQL被广泛地应用在Internet上的中小型网站中,由于体积小.速度快.总体拥有成本低,开放源码.免费,一般中小型网站的开发都选择Linux + MySQL作为网站数据库.MySQL是一个关系型数据库管理系统,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据

MySQL培训简介

MySQL培训简介一.课程简介与目标通过本次培训,可以系统的掌握MySQL的重要知识点,通过专家点拨和经验/案例分享,快速提高实战水平.每个专题结束后,会有相应的实验进行实践.二.讲师:目前为某集团公司业务运维/DBA架构师以及负责其他几家公司技术顾问:为几十家企业做过数据库培训:吉林大学计算机系毕业后加入某外企,某互联网金融等,从事Oracle.MongoDB.MySQL.Hadoop.Redis等咨询.支持和培训工作,为大量金融.移动.互联网.保险等客户提供支持和服务,擅长数据库管理.问题诊

MySQL的简介及发展历

MySQL的简介MySQL 是一个关系型数据库t管理系统,由瑞典MySQL AB公司开发 MySQL是一种开放源代码的关系型数据库管理系统,因为是开放源代码的,在下载后可以根据自己的需要进行修改. 由于体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本需选择了MySQL作为网站数据库. 最开始由SUN公司收购,后面被甲骨文Oracle公司收购 SQL ,NoSQL(Not Only SQL),NewSQL(SQL+NoSQL) 目前全世界市场有比例最高

MySQL auto_increment的坑

背景: Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用). Innodb表定义中处理主键的逻辑是: 1.如果表定义了主键,就使用主键唯一定位一条记录 2.如果没有定义主键,Innodb就生成一个全局唯一的rowid来定位一条记录 auto_increment的由来: 1.Innodb强烈推荐在设计表中自定义一个主键,因为rowid是全局唯一的,所以如果有很多表没有定义主键,就会在生成rowid上产生争用. /* Dictionary sy

验证:mysql AUTO_INCREMENT 默认值是1

用mongodb时,有些字段需要做自增,而且是用二十进制字母表示(使用a-t对应0-19),做了一个_auto_increment字段用来保存,但是应该从0开始还是从1开始呢? 和mysql保持一致便于维护.所以试了一下mysql,AUTO_INCREMENT是从1开始的.看来a就不能用了,从b开始,比如b.c……s.t.ba.bb……bs.bt. 代码: create table users(id int(10) unsigned not null auto_increment primary