CREATE TABLE COUNTRY
(
COUNTRY_ID VARCHAR2(2 BYTE) NOT NULL,
NAME VARCHAR2(200 BYTE),
CURRENCY_ID VARCHAR2(3 BYTE) DEFAULT 'EUR'
)
CREATE TABLE CURRENCY
(
CURRENCY_ID NUMBER NOT NULL,--this is sequnce
NAME VARCHAR2(20 BYTE),
VALUE NUMBER,
BANK_PERCENTAGE NUMBER
)
CREATE OR REPLACE TRIGGER update_currency
AFTER UPDATE
ON SOFTDEV.COUNTRY
FOR EACH ROW
DECLARE
BEGIN
if :new.currency_id = :old.currency_id
then
null; -- if the currency_id exists then to nothing
else
INSERT INTO CURRENCY
( CURRENCY_ID,
NAME,
VALUE,
BANK_PERCENTAGE)
VALUES --line 20
( CURRENCY_ID_SEQ.nextval,
:new.currency_id,
1,
0);
end if;
END;
У меня есть этот триггер при обновлении, который работает нормально, пока не будет валюты_идентификатора, который совпадает со старой валютой .. Когда я пытаюсь вставить валюту, которая существует, я получаю ошибку.UPDATE_CURRENCY ", строка 20 ORA-04088: ошибка во время выполнения триггера 'UPDATE_CURRENCY'
Как решить проблему с уже существующим currency_id?