你的位置:首页 > 数据库

[数据库]通过触发器实现两张有主外键关系的表的数据插入问题


表:T_USERS,T_USER_EXCEPT_WORK,其中T_USERS中的主键ID和T_USER_EXCEPT_WORK中的外键都为数列SEQUENCE_USERS.Currval的自增长数列。

更通俗的讲就是:在T_USERS表中插入一条数据,通过触发器在T_USER_EXCEPT_WORK插入一条相关的数据。

注意:

序列有以下两个属性

CURRVAL: 返回序列当前值;

NEXTVAL:返回当前序列值增加一个步长后的值。

只有在发出至少一个NEXTVAL之后才可以使用CURRVAL属性。

  

注意要勾上可延迟选项。

create or replace trigger Trigger_USER_EXCEPT_WORK
after insert on t_users
for each row
declare
-- local variables here
begin
insert into T_USER_EXCEPT_WORK
(ID,EXCEPT_CITY,EXCEPT_POSITION,JOB_CATEGORYID,EXCEPT_SALARYID,USERID)
values
(SEQUENCE_USERS.Currval,'','','','',SEQUENCE_USERS.Currval);
end Trigger_USER_EXCEPT_WORK;

效果图:

T_USERS表:

T_USER_EXCEPT_WORK表: