如何创建 MySQL 序列?

mysqlmysqli database

MySQL 中的序列是什么?

在 MySQL 中,序列是指从 1 或 0(如果指定)开始按升序生成的整数列表。许多应用程序需要序列,这些序列将用于生成唯一编号,尤其是用于识别。

示例

示例包括 CRM 中的客户 ID、HR 中的员工编号和服务管理系统中的设备编号。

要在 MySQL 中自动创建序列,需要设置列的 AUTO_INCREMENT 属性。这通常是主键列。

规则

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

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

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

AUTO_INCREMENT 列必须具有 NOT NULL 约束。

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

创建 MySQL 序列

让我们看一个创建 MySQL 序列的示例 −

CREATE TABLE tableName (
   emp_no INT AUTO_INCREMENT PRIMARY KEY,
   first_name VARCHAR(50),
   last_name VARCHAR(50)
)

让我们了解 AUTO_INCREMENT 列的工作原理 −

  • AUTO_INCREMENT 列的起始值通常为 1。当在列中插入 NULL 值或在 INSERT 语句中省略值时,它会增加 1。

  • 要获取最后生成的序列号,可以使用 LAST_INSERT_ID() 函数。

  • 最后生成的序列在会话之间是唯一的。

  • 如果另一个连接生成了序列号,可以使用 LAST_INSERT_ID() 函数获取它。

  • 如果在表中插入新行并为序列列指定了值,则 MySQL 确保在序列号不存在于列中时插入序列号。


相关文章