CREATE SEQUENCE "SEQ_ACD7" MINVALUE 1 MAXVALUE 99999999999 INCREMENT BY 1 CACHE 20 NOORDER NOCYCLE;
这条 SQL 语句用于在数据库中创建一个序列 (SEQUENCE
),序列是数据库对象之一,常用于生成唯一的数值,比如自动生成主键的值。以下是这条语句中各部分的详细解释:
-
CREATE SEQUENCE "SEQ_ACD7"
:创建一个名为SEQ_ACD7
的序列。序列名用双引号括起来,表示序列名是区分大小写的。 -
MINVALUE 1
:设置序列的最小值为 1。序列生成的数值不会小于这个最小值。 -
MAXVALUE 99999999999
:设置序列的最大值为 99,999,999,999。序列生成的数值不会超过这个最大值。 -
INCREMENT BY 1
:设置序列每次递增的步长为 1。每次从序列中获取下一个值时,它会在当前值的基础上加 1。 -
CACHE 20
:设置序列缓存 20 个值。这意味着数据库会预先生成并缓存 20 个序列值,以提高获取序列值的效率。 -
NOORDER
:表示不保证序列生成的数值的顺序。在多用户环境中,序列值可能不是严格按顺序分配。 -
NOCYCLE
:表示序列不会循环。当达到最大值时,序列不会重新从最小值开始,而是会报错
在实体类中
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@KeySequence("SEQ_ACD7")//和刚才序列的名字相同
@TableName("CC9A")
public class CC9A {
@TableId(value = "BCC300",type = IdType.INPUT)
private Long bcc300;
使用这个序列的场景通常是在需要生成唯一标识符的地方,比如插入新记录时为主键生成值。序列提供了一种高效且线程安全的方式来生成连续数值。