我有一张桌子电影.
create table Movie
(
mv_id number(5),
mv_name varchar2(30),
startdate date
)
insert into Movie values(1,'AVATAR','8-MAR-2012');
insert into Movie values(2,'MI3','20-MAR-2012');
insert into Movie values(3,'BAD BOYS','10-Feb-2012');
Run Code Online (Sandbox Code Playgroud)
我想创建一个触发器,以确保如果satrt日期早于当前日期,则不会删除任何记录.我的触发器代码是 -
create or replace trigger trg_1
before delete
on Movie
for each row
when(old.startdate < sysdate)
begin
raise_application_error(-20001, 'Records can not be deleted');
end;
Run Code Online (Sandbox Code Playgroud)
触发器已创建.当我执行此代码以删除数据时 -
delete from Movie where mv_id=1;
Run Code Online (Sandbox Code Playgroud)
然后触发器触发但有错误,我不知道为什么我会收到这样的错误.我不想要任何错误,我只想要消息.这是错误 -
delete from Movie where mv_id=1
*
ERROR at line 1:
ORA-20010: Records can not be deleted
ORA-06512: at "OPS$0924769.TRG_1", line 3 …Run Code Online (Sandbox Code Playgroud)