我想在专业表中major(mid,mname)中添加一个触发器,
当添加或修改时专业名称出现'aaa'时,将其改为'bbb'
我写的语句如下图:
这个触发器是可以创建成功,但是后面有出一些错误,
如下图:
另外,我在用命令行执行oracle时,下面的语句根本就没反应
CREATE OR REPLACE TRIGGER "MAJOR_T1"
BEFORE
insert or update on "MAJOR"
for each row
begin
AS BEGIN
IF (new.mname='cheng')
THEN new.mname='new_name';
END IF;
END;
求大神支招,只要给出的答案能运行,一定给分
触发器 oracle trigger
------解决方案--------------------
SQL> create table test_trigger(id int,nn varchar2(50));
表已创建。
SQL> create or replace trigger my_trigger
2 before insert or update
3 on test_trigger
4 for each row
5 begin
6 if :new.nn='aaa' then
7 :new.nn:='bbb';
8 end if;
9 end;
10 /
触发器已创建
SQL> set serveroutput on
SQL> insert into test_trigger select 1,'aaaeee' from dual;
已创建 1 行。
SQL> insert into test_trigger select 1,'aaa' from dual;
已创建 1 行。
SQL> select * from test_trigger;
ID NN
---------- --------------------------------------------------
1 aaaeee
1 bbb
------解决方案--------------------
1楼 说出来了、new改为:new