如何创建一个MySQL序列?

什么是MySQL中的Sequence?

在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会确保在该列中不存在序列号的情况下插入序列号。