根据列中的状态更改创建触发器并在另一列中插入值 table
Create Trigger based on Status change in column and insert value in another column for a table
我有一个名为 Employee
的 table,其中包含像 Status
和 Expected_Promotion_Date
这样的列
Status column
是从 StatusEnum
填充的,它具有 Level 1
、 Level 2
和 Level 3
等值。
当 Employee
的 Status
从 Level 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 值相关的逻辑。我忽略了这一点,因为您还没有解释应该发生的事情。我们能给出的答案的有用性与问题的清晰度成正比。
我有一个名为 Employee
的 table,其中包含像 Status
和 Expected_Promotion_Date
Status column
是从 StatusEnum
填充的,它具有 Level 1
、 Level 2
和 Level 3
等值。
当 Employee
的 Status
从 Level 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 值相关的逻辑。我忽略了这一点,因为您还没有解释应该发生的事情。我们能给出的答案的有用性与问题的清晰度成正比。