oracle表主键id依靠触发器 sequence实现自增长

本文详细介绍如何在Oracle数据库中使用触发器和sequence实现表ID的自增长,包括创建表、主键、sequence和触发器的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle表主键id依靠触发器 sequence实现自增长

  • 创建表:
create table SEND_COUNT
(
  I_ID             NUMBER(10) not null,
  C_INDEX_CODE     VARCHAR2(64) not null,
  send_count       number(10),
  I_STATUS         NUMBER(10) not null,
  I_ORG_ID         NUMBER(10) not null,
  I_RES_TYPE       INTEGER not null,
  c_update_time    date
)
  • 创建主键及索引:

如果不创建主键,在连续插入数据时,会产生I_ID取值重复的情况

alter table SEND_COUNT
  add constraint PK_SEND_COUNT primary key (I_ID)
  using index
  • 创建sequence

cache指定序列按组分配,每次分配后放内存中,可以加快访问速度。

create sequence SEQ_SEND_COUNT
increment by 1 
start with 1 
maxvalue 99999999999999999999
cache 10;
  • 创建触发器自增长
create or replace trigger tr_send_count
  before insert on send_count
    for each row
      when (new.i_id is null)
        begin
          select seq_send_count.nextval into :new.i_id from dual;
        end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值