如何在MySQL中设置初始值和自动递增?
AUTO_INCREMENT属性用于为新行生成唯一标识符。如果将列声明为“NOT NULL”,则可以将NULL分配给该列以生成一系列数字。
当将任何值插入AUTO_INCREMENT列时,该列将设置为该值,并且序列也将重置,以便自动生成值,顺序范围从最大列值开始。
可以更新现有的“AUTO_INCREMENT”列,以重置“AUTO_INCREMENT”序列。可以使用SQL中的“LAST_INSERT_ID()”函数或使用C API函数“mysql_insert_id()”来检索最近生成的自动“AUTO_INCREMENT”值。
这些函数是连接特定的,这意味着它们的返回值不受执行插入操作的其他连接的影响。可以使用“AUTO_INCREMENT”列的最小整数数据类型,该数据类型足够大,以容纳用户所需的最大序列值。
阅读更多:MySQL 教程
AUTO_INCREMENT规则
在使用AUTO_INCREMENT属性时,需要遵循以下规则 –
- 每个表只有一个AUTO_INCREMENT列,其数据类型通常为整数。
-
AUTO_INCREMENT列需要建索引。这意味着它可以是主键或唯一索引。
-
AUTO_INCREMENT列必须有非空约束。
-
当将AUTO_INCREMENT属性设置为列时,MySQL会自动将非空约束添加到该列中。
如果未向表中添加id列,则可以使用以下语句 –
ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);
如果已经存在id列,则可以使用以下命令 –
ALTER TABLE tableName AUTO_INCREMENT=specificValue;
在这里,tableName指的是需要设置’ AUTO_INCREMENT ‘列的表的名称。 ‘ specificValue ‘是指用户指定的整数,从该整数开始指定’ AUTO_INCREMENT ‘值。
极客教程