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