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一个新的记录时插入数据,但是当我来到这个表中更新记录它会引发背部和错误的问题可以插入。我正在使用序列为历史记录表创建一个新的ID。更新时,但不插入
我收到的错误是“违反 - 父键未找到”/“第21行ORA-04088:触发器执行期间出错”。
主表或历史表上是否有任何约束(外键,主键)?这个错误似乎与此有关。 – Hawk
MAIN_TABLE或HISTORY表上是否有外键? – Dijkgraaf
您可以运行下面的查询,找出:'SELECT * FROM USER_CONS_COLUMNS 在表格名=“<你的表名>”;' – Hawk