Триггер + ошибка мутации + каскадное обновление - PullRequest
0 голосов
/ 14 ноября 2018

Для задания я пытаюсь выполнить каскадное обновление с помощью триггера 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';

введите описание изображения здесь

Что здесь не так? Есть идеи?

...