Я хочу остановить обновление данных в моей таблице bb_tax и сохранить эти данные в моей таблице tax_change_info. Я написал этот триггер. но ничего не вставляется в мою таблицу tax_change_info, если я вызываю ошибку. он работает без исключения, но он будет обновлять данные в моем bb_tax, чего я не хочу. Как мне написать триггер для этого?
вот мой триггер.
CREATE OR REPLACE TRIGGER CHECK_TAX_RATE
BEFORE UPDATE OF taxrate
ON BB_TAX
FOR EACH ROW
DECLARE
v_user varchar(50);
BEGIN
select user into v_user from dual;
INSERT INTO TAX_CHANGE_INFO VALUES(v_user,:OLD.TAXRATE, :NEW.TAXRATE);
dbms_output.put_line('insert done');
RAISE_APPLICATION_ERROR(-20505,'You are not allowed to update taxes.');
END;
Да, ты прав. Я так же думал, что это не позволит пользователям узнать, что данные на самом деле не были обновлены.