MySQL自增长auto_increment属性


1.把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做。自增长只能被分配给固定表的固定的某一字段,不能被多个表共用.
自增长会把一个未指定或NULL值的字段自动填上.
例如有一张表
    CREATE TABLE Movie(  
    id           INT NOT NULL AUTO_INCREMENT,  
    name     VARCHAR(60) NOT NULL,  
    released YEAR NOT NULL,  
    PRIMARY KEY (id)  
   ) ENGINE=InnoDB;  

INSERT INTO Movie (name,released) VALUES ('Gladiator',2000);  
INSERT INTO Movie (id,name,released) VALUES (NULL,'The Bourne Identity',1998);

这样就可以省略自增长的那一列了
可以使用SELECT LAST_INSERT_ID()函数来查看最后一个对auto_increment列insert或update
操作的列


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



3.AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。

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



4.AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复。



5.AUTO_INCREMENT数据列必须具备NOT NULL属性。



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

你可能感兴趣的:(mysql)