SQL触发器不起作用

时间:2014-03-12 05:02:58

标签: sql oracle triggers

我有sql的触发器

 CREATE or REPLACE TRIGGER student
 BEFORE INSERT ON MEMBEROF
 FOR Each Row 
 WHEN (new.studentid != old.studentid )
 BEGIN
 DBMS_OUTPUT.PUT_LINE('Inserted new year ');
 select extract(year from sysdate) 
 into :new.JOINED
 from dual;
 END;
/

此触发器假设在插入新条目并且年份更改为当前年份时激活

当我尝试将某些内容插入到Memberof表中时,此触发器未激活。

我的尝试是 插入成员  价值观(75234,42,1999);

2 个答案:

答案 0 :(得分:0)

我认为您可以尝试UPDATE而不是INSERT,调用INSERT触发器时应该没有旧的变量。

答案 1 :(得分:0)

在您的情况下,旧与新的返回false,因为old为null,因为每个新数据行都不存在旧值。

我猜你是在oracle上,所以你可以尝试使用nvl()函数来覆盖它,或者将你的when条件简单地改为1 = 1.