使用 MySQL 中的 AUTO_INCREMENT 列

mysqlmysqli database

让我们了解如何使用 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 开始。这只有在未启用‘NO AUTO VALUE ON ZERO’ SQL 模式时才能执行。

如果将列声明为‘NOT NULL’,则可以将 NULL 分配给该列以生成数字序列。

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

可以更新现有的‘AUTO_INCREMENT’列,这也会重置‘AUTO_INCREMENT’序列。可以使用 SQL 中的 ‘LAST_INSERT_ID()’ 函数或使用 C API 函数 ‘mysql_insert_id()’ 检索最新的自动生成的 ‘AUTO_INCREMENT; 值。

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

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

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

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

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


相关文章