如何从单个触发器插入两个不同表的不同列?

时间:2013-12-19 16:28:58

标签: sql oracle oracle-sqldeveloper

在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

1 个答案:

答案 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')
/