1
            create or replace trigger UPDATE_HISTORY
            BEFORE INSERT OR UPDATE ON MAIN_TABLE
            FOR EACH ROW
            BEGIN

            IF UPDATING THEN

            INSERT INTO HISTORY(
                ID,
                STATUS_ID
            )
            VALUES 
            (
                :OLD.ID,
                :OLD.STATUS_ID
            );

            ELSE

            :NEW.id := id_seq.nextval; 

            INSERT INTO HISTORY(
                ID,
                STATUS_ID
            )
            VALUES 
            (
                :NEW.ID,
                :NEW.STATUS_ID
            );

            END IF;

            END;

現在、MAIN_TABLE に新しいレコードを作成するときにデータを挿入できるという問題が発生していますが、このテーブル内のレコードを更新するとエラーが発生します。History テーブルの新しい ID を作成するためにシーケンスを使用しています。

私が受け取っているエラーは「違反 - 親キーが見つかりません」/「行 21 ORA-04088: トリガーの実行中にエラーが発生しました」です。

4

2 に答える 2