由于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的值。