如何在 MySQL 中设置初始值和自动递增?


AUTO_INCREMENT 属性用于为新行生成唯一的标识。如果某列声明为“NOT NULL”,则可以为该列分配 NULL 以生成一系列数字。

当任何值插入到 AUTO_INCREMENT 列时,该列将设置为该值,并且序列也将重置,以便它自动生成值,按从最大列值开始的顺序范围。

可以更新现有的“AUTO_INCREMENT”列,这也会重置“AUTO_INCREMENT”序列。可以使用 SQL 中的“LAST_INSERT_ID()”函数或使用“mysql_insert_id()”(这是一个 C API 函数)来检索最近自动生成的“AUTO_INCREMENT”值。

这些函数是特定于连接的,这意味着它们的返回值不受执行插入操作的其他连接的影响。“AUTO_INCREMENT”列可以使用最小的整数数据类型,该类型足够大以容纳用户所需的最高序列值。

AUTO_INCREMENT 的规则

使用 AUTO_INCREMENT 属性时,需要遵循以下规则:

  • 每个表只有一个 AUTO_INCREMENT 列,其数据类型通常为整数。

  • AUTO_INCREMENT 列需要被索引。这意味着它可以是 PRIMARY KEY 或 UNIQUE 索引。

  • AUTO_INCREMENT 列必须具有 NOT NULL 约束。

  • 当 AUTO_INCREMENT 属性设置为某列时,MySQL 会自动为该列添加 NOT NULL 约束。

如果尚未向表中添加 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”值开始的整数。

更新于:2021年3月9日

2K+ 阅读量

开启你的职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.