创建一个触发器,如果​​一个字段自动为null,则自动生成

时间:2017-01-05 11:50:17

标签: sql oracle triggers

我正在尝试创建触发器,如果​​我的数据库中的一个字段为null,则自动将另一个字段更新为null。这就是我的尝试:

CREATE TRIGGER t123
BEFORE INSERT ON Customer
  REFERENCING NEW ROW AS New
FOR EACH ROW
  BEGIN
IF new.f is null 
THEN       
    new.course_year = null;
END IF;
END;

1 个答案:

答案 0 :(得分:4)

您不需要REFERENCING,只需使用:NEW。 此外,在WHEN条款之外,您必须使用:NEW而不是NEW

SQL> create table customer ( f varchar2(100), course_year varchar2(100));

Table created.

SQL> CREATE TRIGGER t123
  2      BEFORE INSERT OR UPDATE
  3      ON Customer
  4      FOR EACH ROW
  5  BEGIN
  6      IF :new.f is null
  7      THEN
  8          :new.course_year := null;
  9      END IF;
 10  END;
 11  /

Trigger created.

SQL> insert into Customer(f, course_year) values (123, 123);

1 row created.

SQL> update customer set f = null, course_year = 'test';

1 row updated.
SQL> select * from customer;

F          COURSE_YEA
---------- ----------


SQL>