在oracle SQL中,我想使用单个触发器来更新表2的第一列和第四列(A,B)
中的两列(A,B,C,D)
。在两个表中插入的条件将保持相同(所以没有if-else
)。触发器将值插入表项目中。我想插入值“PID”和&另一张表中的'PAYMENTTERM',也就是'temp_pay_term'。
抱歉,关于代码丢失。我总是不善于格式化,因此我无法粘贴代码。但它看起来像下面的东西 创建触发器 开始
SELECT COUNT(1) INTO varProjectExists 来自项目 WHERE ProjectUniversalID = varProject_ID; 如果 更新项目 否则插入项目
现在我想在另一个表中插入值PID和paymentterm,例如temp_pay_term
答案 0 :(得分:0)
嗯,由于信息太少,我无法猜测你需要什么extamante。
但是建议:
create table TABLE1(
"ID1" number not null
, "A1" varchar(20)
, "B1" varchar(20)
, "C1" varchar(20)
, "D1" varchar(20)
)
/
create or replace trigger TG_BIU_TABLE1
after insert or update on TABLE1
for each row
begin
update TABLE2
set A2 = :new.A1
,B2 = :new.B1
where TABLE2.ID2 = :new.ID1;
update TABLE3
set A3 = :new.A1
,B3 = :new.B1
,C3 = :new.C1
,D3 = :new.D1
where TABLE3.ID3 = :new.ID1;
end;
/
create table TABLE2(
"ID2" number not null
, "A2" varchar(20)
, "B2" varchar(20)
)
/
INSERT INTO TABLE2 (ID2, A2, B2) VALUES (1, 'AAA', 'BBB')
/
create table TABLE3(
"ID3" number not null
, "A3" varchar(20)
, "B3" varchar(20)
, "C3" varchar(20)
, "D3" varchar(20)
)
/
INSERT INTO TABLE3 (ID3, A3, B3, C3, D3) VALUES (1, 'AAA', 'BBB', 'CCC', 'DDD')
/
INSERT INTO TABLE1 (ID1, A1, B1, C1, D1) VALUES (1, 'AAA1', 'BBB1', 'CCC1', 'DDD1')
/