请问我现在有两个表a表userid username
b表bid buserid busername我想在b表里插入一条数据,b表里的userid 要从a表里来,如果a表没有就用busername在a表里插入一条然后得到a表的userid,再在b表里插数据,如果a表有就得到a 表里的userid再在b表里插数据这用触发器怎么实现
b表bid buserid busername我想在b表里插入一条数据,b表里的userid 要从a表里来,如果a表没有就用busername在a表里插入一条然后得到a表的userid,再在b表里插数据,如果a表有就得到a 表里的userid再在b表里插数据这用触发器怎么实现
before INSERT ON b
DECLARE
v_userid number;
BEGIN
select userid into v_userid from a where username = :new.busername;if(v_count is not null) then
:new.buserid := v_userid;
else
v_userid := USER_SEQ.nextval();
insert into a values(v_userid, :new. busername);
:new.buserid := v_userid;
end if;END;
/
对本表的insert不需要你显式的做,只要trigger执行成功,本表的记录也就成功插入了。