开发者

How to write an Oracle trigger based on Auto incremented value?

开发者 https://www.devze.com 2023-03-11 05:28 出处:网络
I have an Oracle Table with the following keys: ID, Name, DoB, Dept & FileNo. The ID field is the primary Key with an Auto Incremented value.

I have an Oracle Table with the following keys: ID, Name, DoB, Dept & FileNo. The ID field is the primary Key with an Auto Incremented value.

I wish to write a trigger, so that when a row is added with the Name, DoB & Dept , the FileNo field should get the value yyyy/xxxx where 'yyyy' is a predefined string & 'xxxx' 开发者_开发知识库is the value in ID field.

How do I do this?


If it will always be the ID with some prefix, then it probably shouldn't be a column. If that is the default, then a trigger that sets :new.fileno := 'string'||:new.id should suffice.

Oracle doesn't have auto increment, so you probably mean a sequence. If you have a trigger populating that, then this can go in the same trigger.


You need a sequence to implement an Auto Incremented value:

create sequence seq_file_id start with 1 increment by 1;

and a trigger on a table

CREATE TRIGGER file_trg 
   BEFORE insert 
   ON file_table 
   FOR EACH ROW
BEGIN
      SELECT seq_file_id.NEXTVAL INTO :new.id FROM dual;
      :NEW.fileno := 'yyyy' || :new.id;

END;
/
0

精彩评论

暂无评论...
验证码 换一张
取 消