Oracle,更新前触发

时间:2017-01-05 07:42:32

标签: oracle

你能帮帮我吗? 我需要创建一个触发器,比较两个日期和一个数字列,并根据它们插入字符列字。 我知道它应该看起来如何,但在我的脚本中有些不对劲。 这是我的榜样 谢谢。

create trigger booking_trigger
before insert on booking
for each row
 WHEN (new.booking_id IS NULL)
   begin
     if sys_date > paid_date and ammount>0  =:new.'Paid' from dual;
     elsif sys_date > paid_date and ammount=0  =:new.'Not paid' from dual;
     elsif sys_date < paid_date and ammount=0 =:new.'Waiting';
    else :=new.'Broken'
   end if;
end
/ 

1 个答案:

答案 0 :(得分:1)

让我们从IF THEN ELSIF开始吧。显然,缺少关键字then

您希望更新哪一列?我们说它是a_column。在这种情况下,您将其值设置为'Paid',如下所示:

:new.a_column := 'Paid';

您可以阅读有关触发器in the documentation

的更多信息