oracle用序列实现主键自增

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;

使用这个序列的场景通常是在需要生成唯一标识符的地方,比如插入新记录时为主键生成值。序列提供了一种高效且线程安全的方式来生成连续数值。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值