oracle 自增列

由于Oracle不像SQL Server 那样系统自带自增列,所以如果需要使用自增列或者把SQL Server中的数据导入时,就需要自己创建自增列

Oracle的自创自增类由序列(sequence)和触发器(trigger)共同完成,所以需要创建一个序列和触发器

/*创建自增列(由序列和触发器共同完成)*/

/*创建序列*/
create sequence s_id increment by 1 start with 1 nomaxvalue nocycle;
/*创建触发器*/
create or replace trigger myTrigger
before insert on myTable
referencing old as old_value new as new_value
for each row
begin
new_value.userid= s_id.nextval;
end;

cata0是表名,cata0_id是需要自增的字段!
CREATE SEQUENCE SEQ_cata0
INCREMENT BY 1
START WITH 1
MAXVALUE 9999999
\
CREATE TRIGGER TRG_cata0 BEFORE
INSERT ON cata0
FOR EACH ROW begin
SELECT SEQ_cata0.NEXTVAL
INTO :NEW.cata0_ID
FROM DUAL;
End TRG_cata0;

new.cata0_ID在insert触发器中表示的是新增加的cata0_ID的值,new表示新增加的一行数据,如果是针对的是update的触发器还有old, old表示的是更新前的一行数据,new表示的是更新后的一行数据,old.cata0_ID表示更新前cata0_ID的值,new.cata0_ID表示更新后cata0_ID的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值