根据列中的状态更改创建触发器并在另一列中插入值 table

Create Trigger based on Status change in column and insert value in another column for a table

我有一个名为 Employee 的 table,其中包含像 StatusExpected_Promotion_Date

这样的列

Status column 是从 StatusEnum 填充的,它具有 Level 1 Level 2Level 3 等值。 当 EmployeeStatusLevel 1 更改为 Level 2 时,我需要一个 trigger 来填充 Expected_Promotion_Date 列中的值,即当前日期加上 3 年。

我尝试制作触发器,请找到相同的参考代码:

CREATE or REPLACE TRIGGER Expected_Promotion_Date 
    AFTER   
    UPDATE OF STATUS FOR EACH ROW   
     DECLARE    NEXT_MAINTENANCE_CONTROL DATE;   
BEGIN     
   IF(:OLD.STATUS<>:NEW.STATUS) THEN     
    BEGIN   
      IF(:OLD.STATUS=-10 AND :NEW.STATUS=00)THEN         
     BEGIN  

     END      
  END   
END

谁能帮我 trigger 因为我是新手,也是第一次学习。如果有人可以帮助我或指导我做同样的事情,那就太好了。

提前致谢。

像这样:

create or replace trigger expected_promotion_date 
before update on employee for each row   
begin     

  if :old.status != :new.status then 
    :new.expected_promotion_date := trunc(sysdate) + interval '3' year;
  end if; 

end;
/

此代码检查 STATUS 的值是否已更改,如果不同,则用今天的日期加上三年填充预期的促销日期列。


您可能需要调整此代码以处理您未包含在问题中的任何其他业务逻辑。例如,在您的评论中,您展示了一些与 STATUS 值相关的逻辑。我忽略了这一点,因为您还没有解释应该发生的事情。我们能给出的答案的有用性与问题的清晰度成正比。