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: トリガーの実行中にエラーが発生しました」です。