MySQL的AUTO_INCREMENT
T数据列包括在这个索引里作为它的最后一个数据列。这样,这个复合索引里,前面的那些数据列每构成一种独一无二的组合,最末尾的AUTO_INCREMENT数据列就会生成一个与该组合相对应的序列编号。
HEAP数据表 HEAP数据表从MySQL4.1开始才允许使用自增列。 自增值可通过CREATE TABLE语句的 AUTO_INCREMENT=n选项来设置。 可通过ALTER TABLE语句的AUTO_INCREMENT=n选项来修改自增始初值。 编号不可重用。 HEAP数据表不支持在一个数据表中使用复合索引来生成多个互不干扰的序列编号。 BDB数据表 不可通过CREATE TABLE OR ALTER TABLE的AUTO_INCREMENT=n选项来改变自增初始值。 可重用编号。 支持在一个数据表里使用复合索引来生成多个互不干扰的序列编号。 InnDB数据表 不可通过CREATE TABLE OR ALTER TABLE的AUTO_INCREMENT=n选项来改变自增初始值。 不可重用编号。 不支持在一个数据表里使用复合索引来生成多个互不干扰的序列编号。 在使用AUTO_INCREMENT时,应注意以下几点: AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列。 设置AUTO_INCREMENT属性的数据列应该是一个正数序列,所以应该把该数据列声明为UNSIGNED,这样序列的编号个可增加一倍。 AUTO_INCREMENT数据列必须有唯一索引,以避免序号重复。 AUTO_INCREMENT数据列必须具备NOT NULL属性。 AUTO_INCREMENT数据列序号的最大值受该列的数据类型约束,如TINYINT数据列的最大编号是127,如加上UNSIGNED,则最大为255。一旦达到上限,AUTO_INCREMENT就会失效。 当进行全表删除时,AUTO_INCREMENT会从1重新开始编号。全表删除的意思是发出以下两条语句时: delete from table_name;ortruncate table table_name delete from table_name where 1; 强制MySQL不复用已经使用过的序列值的方法是:另外创建一个专门用来生成AUTO_INCREMENT序列的数据表,并做到永远不去删除该表的记录。当需要在主数据表里插入一条记录时,先在那个专门生成序号的表中插入一个NULL值以产生一个编号,然后,在往主数据表里插入数据时,利用LAST_INSERT_ID()函数取得这个编号,并把它赋值给主表的存放序列的数据列。如: insert into i |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |