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:执行触发器时出错”。