У меня есть столик Фильм.
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');
Я хочу создать триггер, который будет гарантировать, что никакие записи не будут удалены, если дата сатрита ранее текущей даты.
Мой код триггера -
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;
Триггер создан. Когда я выполняю этот код для удаления данных -
delete from Movie where mv_id=1;
Затем срабатывает триггер, но с ошибками, я не знаю, почему я получаю такую ошибку.
Я не хочу никаких ошибок, я хочу только сообщение.
Это ошибка -
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
ORA-04088: error during execution of trigger 'OPS$0924769.TRG_1'
Я хочу избавиться от этой ошибки.