Oracle定义主键自增

Oracle数据库在插入操作中不自动递增主键,与Mysql不同。可通过创建序列和触发器实现主键自增。具体步骤包括:1) 创建序列,如WJSC_id_increment,设定递增规则;2) 创建触发器,在WJSC表插入前更新id。若需重置id,先查看序列下一个值,然后调整序列递增步长为负值,再恢复正常递增。注意重置后需执行恢复语句,否则后续插入可能出错。
摘要由CSDN通过智能技术生成

Oracle数据库在进行insert操作的时候 是不会自己进行主键自增的,这是和Mysql不一样的地方。需要通过触发器和序列来完成主键自增的。

1、创建序列

WJSC_id_increment -- 是序列名称 可以自定义

CREATE SEQUENCE WJSC_id_increment  
 INCREMENT BY 1  
 START WITH 1  
 MAXVALUE 1.0E20  
 MINVALUE 1  
 NOCYCLE  
 CACHE 20  
 NOORDER

2、创建触发器

create or replace trigger WJSC_id_trigger(触发器名称)
 before insert on WJSC(表名)
 for each row
 begin
 select WJSC_id_increment.nextval into :new.id from dual;
 end;

想让当前触发器的id回到从一开始,可进行如下操作

1、查看下一次的id是多少

select WJSC_id_increment.NEXTVAL from dual;

如果查询结果,是21

2、alter sequence WJSC_id_increment increment by -20; //注意是-(n-1)

最后要执行下面这一句,每次id增加多少

3、alter sequence WJSC_id_increment increment by 1;

注意:如果让id值回到1的以后,一定要执行第三条语句,负责进行下一次插入操作时会报错。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值