在 MySQL 中使用 AUTO_INCREMENT 列
让我们了解如何在MySQL中使用AUTO_INCREMENT列-
AUTO_INCREMENT属性用于为新行生成唯一标识。让我们看看这个语句是如何工作的。在此之前,请考虑以下查询-
询问
CREATE TABLE tableName ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO tableName (name) VALUES (‘val1’),('val2'),('val3'), ('val4'); SELECT * FROM tableName;输出结果
+----+---------+ | id | name | +----+---------+ | 1 | val1 | | 2 | val2 | | 3 | val3 | | 4 | val4 | +----+---------+
在上面的查询中,没有为'AUTO_INCREMENT'列指定值,因此MySQL自动为'id'列分配了一个数字序列。也可以显式分配值0,以便编号序列从0开始。只有在未启用“NOAUTOVALUEONZERO”SQL模式时才能这样做。
如果列被声明为“NOTNULL”,则可以将NULL分配给该列以生成数字序列。
当任何值插入到AUTO_INCREMENT列中时,该列将被设置为该值,并且该序列也会被重置,以便它在从最大列值开始的顺序范围内自动生成值。
可以更新现有的“AUTO_INCREMENT”列,这也将重置“AUTO_INCREMENT”序列。最近自动生成的'AUTO_INCREMENT;可以使用LAST_INSERT_ID()SQL中的“”函数或使用mysql_insert_id()CAPI函数“”检索值。
使用AUTO_INCREMENT属性时需要遵循以下规则-
每个表只有一个AUTO_INCREMENT列,其数据类型通常为整数。
AUTO_INCREMENT列需要被索引。这意味着它可以是PRIMARYKEY或UNIQUE索引。
AUTO_INCREMENT列必须有一个NOTNULL约束。
当AUTO_INCREMENT属性设置为列时,MySQL会自动将NOTNULL约束添加到自己的列中。