У меня есть таблица счетов, как эта -
create table account
(
acct_id int,
cust_id int,
cust_name varchar(20)
)
insert into account values(1,20,'Mark');
insert into account values(2,23,'Tom');
insert into account values(3,24,'Jim');
Я хочу создать триггер, который будет гарантировать, что никакие записи не могут быть вставлены или обновлены в таблице счетов с acct_id как 2 и cust_id как 23.
Мой код -
create trigger tri_account
before insert or update
on account
for each row
begin
IF (:new.acct_id == 2 and :new.cust_id == 23) THEN
DBMS_OUTPUT.PUT_LINE('No insertion with id 2 and 23.');
rollback;
END IF;
end;
поэтому этот триггер создан, но с ошибкой компиляции.
теперь, когда я вставляю любую запись с acct_id как 2 и cust_id как 23, это разрешает.
Но я получаю сообщение об ошибке
ORA-04098: триггер 'OPS $ 0924769.TRI_ACCOUNT' недействителен и не прошел повторную проверку
Я не понимаю этого. Я также хочу показать сообщение, что вставка невозможна.
пожалуйста, помогите ...