触发在另一个表中添加新插入的行

时间:2013-12-09 08:37:34

标签: mysql sql database oracle triggers

我正在开发oracle SQL开发人员中的触发器,它会将特定表X中每个新插入的行复制到另一个表Y.X和Y表中的属性数不匹配。这就是为什么我只是在表X中获取一部分属性并填写表Y. 这是我编写的代码,但它不起作用:

CREATE OR REPLACE TRIGGER ESURUSAGE
AFTER INSERT
ON X
FOR EACH ROW 
DECLARE
  user_ID   Varchar(10);
BEGIN 
  Select user_name INTO user_ID
    From X A
    Where A.user_name = :new.user_name;
  INSERT INTO Y 
  ('DSS', SYSDATE, upper(user_ID) , null , null, upper(user_ID), upper(user_ID), SYSDATE, SYSDATE); 
END;

1 个答案:

答案 0 :(得分:0)

您不需要从表X中选择user_name,因为您已经拥有此信息。您的插入语句中还有一个备用“,”。试试这样的事情

CREATE OR REPLACE TRIGGER ESURUSAGE
AFTER INSERT
ON X
FOR EACH ROW 
BEGIN 
  INSERT INTO Y VALUES
  ('DSS', SYSDATE, upper(:new.user_name) , null , null, upper(:new.user_name), upper(:new.user_name), SYSDATE, SYSDATE); 
END;