我有一張桌子電影。如何在oracle中創建觸發器,以確保在satrt日期早於當前日期的情況下不會刪除任何記錄?
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');
我想創建一個觸發器,確保沒有記錄被刪除如果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;
扳機created.When我執行該代碼刪除數據 -
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'
我想擺脫這個錯誤。
要只顯示:'記錄不能刪除' – Vikram 2012-03-12 06:36:50
我想要防止刪除並顯示一條消息。 – user1262375 2012-03-12 06:45:57