AUTO_INCREMENT的是随着你数据库里面数据项的增加而自动增加值的一个属性,一般在像MYSQL这种数据库里,主键一般都是用ID号,比如学生的学号,公民的身份z号等,这种ID号是唯一的,是可以唯一标识数据库里面的一项数据的,而这种ID号并不需要自己动手去一个个输入,直接通过设置AUTO_INCREMENT就可以从小到大自动生成了。
扩展资料:
如果希望在每次插入新记录时,自动地创建主键字段的值。可以在表中创建一个 auto-increment 字段。MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。默认地AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
主键又称主关键字,主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
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中取得最后一条记录
1、创建表格时添加: create table table1(id int auto_increment primary key,…)2、创建表格后添加: alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.
附:mysql 中的alter table mysql>alter table employee change depno depno int(5) not null
加索引 mysql>alter table 表名 add index 索引名 (字段名1[,字段名2 …])
例子: mysql>alter table employee add index emp_name (name)
加主关键字的索引 mysql>alter table 表名 add primary key (字段名)
例子: mysql>alter table employee add primary key(id)
加唯一限制条件的索引 mysql>alter table 表名 add unique 索引名 (字段名)
例子: mysql>alter table employee add unique emp_name2(cardnumber)
查看某个表的索引 mysql>show index from 表名例子: mysql>show index from employee
删除某个索引 mysql>alter table 表名 drop index 索引名例子: mysql>alter table employee drop index emp_name
修改表:增加字段:mysql>ALTER TABLE table_name ADD field_name field_type
查看表:mysql>SELECT * FROM table_name
修改原字段名称及类型:mysql>ALTER TABLE table_name CHANGE old_field_name new_field_name field_type
删除字段:ALTER TABLE table_name DROP field_name
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)