如何在 MySQL 中设置初始值和自动增量?
AUTO_INCREMENT 属性用于为新行生成唯一标识。如果将列声明为"NOT NULL",则可以将 NULL 分配给该列以生成数字序列。
当任何值插入到 AUTO_INCREMENT 列中时,该列将设置为该值,并且序列也会重置,以便它自动生成值,从最大列值开始按顺序排列。
可以更新现有的"AUTO_INCREMENT"列,这也会重置"AUTO_INCREMENT"序列。可以使用 SQL 中的"LAST_INSERT_ID()"函数或使用"mysql_insert_id()"检索最新自动生成的"AUTO_INCREMENT"值这是一个 C API 函数。
这些函数是特定于连接的,这意味着它们的返回值不受执行插入操作的其他连接的影响。可以使用‘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’ 值从其开始的整数。