Для задания я пытаюсь выполнить каскадное обновление с помощью триггера PK для его FK с использованием Oracle SQL. Я не могу использовать каскадное обновление в FK.
Ниже мой код, который генерирует соответствующую ошибку:
CREATE or REPLACE trigger TR_PRODNO_FK_UPDATE
/* trigger executes BEFORE
an UPDATE of prodNo on the Product table */
before update of prodNo on tbProduct
/* trigger executes for each ROW */
for each row
/* begins a PL/SQL Block */
begin
/* update prodNo on tbProduct */
UPDATE tbProduct a
SET a.prodNo = :new.prodNo
WHERE :old.prodNo = a.prodNo;
/* update the prodNo on tbComponent */
UPDATE tbComponent b
SET b.prodNo = :new.prodNo
WHERE :old.prodNo = b.prodNo;
/* send message to output */
dbms_output.put_line (
'*** Related rows in the
PRODUCT and COMPONENT table updated - TR_PRODNO_FK_UPDATE trigger');
end TR_PRODNO_FK_UPDATE;
/
UPDATE tbProduct
SET prodNo = '104'
WHERE prodNo = '100';
введите описание изображения здесь
Что здесь не так? Есть идеи?