MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能.
可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。
在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。
可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。
可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值。
当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,
情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。
如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。
扩展资料
在使用AUTO_INCREMENT时,应注意以下几点:
1、AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。
2、设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。
3、AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复(即是主键或者主键的一部分)。
4、AUTO_INCREMENT数据列必须具备NOT NULL属性。
5、AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。
一旦达到上限,AUTO_INCREMENT就会失效。
6、当进行全表删除时,MySQL AUTO_INCREMENT会从1重新开始编号。
这是因为进行全表操作时,MySQL(和PHP搭配之最佳组合)实际是做了这样的优化操作:先把数据表里的所有数据和索引删除,然后重建数据表。
7、如果想删除所有的数据行又想保留序列编号信息,可这样用一个带where的delete命令以抑制MySQL(和PHP搭配之最佳组合)的优化:delete from table_name where 1。
也可以用last_insert_id()获取刚刚自增过的值。
参考资料:IT专家网-MYSQL中取得最后一条记录
auto_increment是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第二跳数据时,主键值是2,不是1。
例如:
create table `test`
(
`id` int(10) not null auto_increment, -- 表示自增列
`name` varchar(20) not null,
primary key(`id`)
)
auto_increment = 1; -- 表示自增起始大小-- 这样就可以创建一个表`test`,id为自增列
-- 执行语句 insert into test (`name`) values ('名字');
-- 就可以插入一行数据为: 1 '名字'
在使用AUTO_INCREMENT时,应注意以下几点:
1、AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。
2、设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。
3、AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复(即是主键或者主键的一部分)。
AUTO_INCREMENT数据列必须具备NOT NULL属性。
4、AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效。
5、当进行全表删除时,MySQL AUTO_INCREMENT会从1重新开始编号。
这是因为进行全表操作时,MySQL(和PHP搭配之最佳组合)实际是做了这样的优化操作:先把数据表里的所有数据和索引删除,然后重建数据表。
如果想删除所有的数据行又想保留序列编号信息,可这样用一个带where的delete命令以抑制MySQL(和PHP搭配之最佳组合)的优化:delete from table_name where 1;
可用last_insert_id()获取刚刚自增过的值。
本回答被网友采纳视频讲解的是mysql数据库的自动增长auto_increment,含义是列的值可以被系统按照一定的规律自动累加。同时也讲到了自动增长需要注意的8个注意点,都是细节问题,需要好好通过案例的形式进行测试。
mysql中auto_increment是干什么的
auto_increment是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第二跳数据时,主键值是2,不是1。例如:create table `test`(`id` int(10) not null auto_increment, -- 表示自增列 `name` varchar(20) not null,primary key(`id`))auto_increment = 1; -- 表示自增...
mysql 中 AUTO_INCREMENT 是什么意思为什么必须和主键搭配
在MySQL中,AUTO_INCREMENT是一个关键特性,它用于自动为表中的主键字段生成唯一的、递增的整数值。当创建一个表,如:
mysql中auto_increment是干什么的?
MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能.可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。
mysql 中 AUTO_INCREMENT 是什么意思为什么必须和主键搭配
AUTO_INCREMENT的是随着你数据库里面数据项的增加而自动增加值的一个属性,一般在像MYSQL这种数据库里,主键一般都是用ID号,比如学生的学号,公民的身份证号等,这种ID号是唯一的,是可以唯一标识数据库里面的一项数据的,而这种ID号并不需要自己动手去一个个输入,直接通过设置AUTO_INCREMENT就可以从小到...
MYSQL中的AUTO_INCREMENT什么意思 ?能举个例子说明一下么!还有主键和默...
AUTO_INCREMENT 是自动计数从几开始 主键叫主关键字,惟一地标识表中的某一条记录。默认编码是当前表或库默认采用的编码方式,比如汉字的gbk,gb18030,繁体的big5等。
MySQL实现ID自动增长的简便方法mysql中id自动加1
AUTO_INCREMENT是MySQL中的关键字,表示每次插入一个新的记录时,自动为该记录生成一个唯一的ID。该字段必须与PRIMARY KEY组合使用,否则MySQL无法正确生成ID。以下是一个示例表,它使用了AUTO_INCREMENT和PRIMARY KEY:CREATE TABLE example_table (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT ...
为什么mysql自增要用default
在MySQL中,使用自增(AUTO_INCREMENT)属性可以方便地为表的某个列生成唯一的、递增的数值。在定义自增列时,可以选择是否使用 DEFAULT 关键字来指定默认值。使用 DEFAULT 关键字的原因包括:1. 插入时省略自增列:如果在插入数据时省略了具有自增属性的列,MySQL会自动为该列分配下一个可用的自增值。
sql语句建表的时候,末尾auto_increment是什么意思?
AUTO INCREMENT 字段我们通常希望在每次插入新记录时,自动地创建主键字段的值,可以在表中创建一个 auto-increment 字段。用于 MySQL 的语法:下面的 SQL 语句把 “Persons” 表中的 “ID” 列定义为 auto-increment 主键字段:from 树懒学堂 MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment ...
如何通过MySQL实现自增功能加一简介mysql加一
MySQL是支持大量NO-SQL操作的关系型数据库,所谓自增操作就是将列的值累加一个或多个数值直到某一条件达到。 使用MySQL实现自增功能有多种方法,本文将介绍常用的三种方法:MySQL auto_increment关键字法、MySQL update自加方法,以及使用程序实现自加操作。1、MySQL auto_increment关键字法:MySQL auto_...
MySQL自增长设置详解轻松实现ID自动递增mysql上怎么自增长
auto_increment可以被用于数值类型的列中,每次插入数据时,MySQL会自动将该列的值自增1,从而让ID递增。当然,不限于数值类型,也可以使用其他格式的类型,比如字符串类型来实现自增长。如何配置MySQL自增长设置 如果想在MySQL中使用auto_increment自增长,首先要在表定义中指定有哪些列将要自增长。具体的...