【发布时间】:2012-06-15 17:54:15
【问题描述】:
当updated 变为Y 时,我有以下触发器。仅当 my_hist 表中不存在值时,我才想插入旧值。如果存在相同的记录,则不应插入。对于这个最好的方法是创建一个约束来检查my_hist表中的唯一性还是在触发器中检查这个条件?如果是这样,我怎么能在触发器中做到这一点?
或者是否可以在触发器中检查my_hist表的唯一约束,使其不会插入重复记录。
CREATE OR REPLACE TRIGGER mytrig
AFTER UPDATE
ON mytab
FOR EACH ROW
WHEN (
new.updated = 'Y'
)
BEGIN
INSERT INTO my_hist
VALUES (
:old.id,
:old.no,
:old.start_date,
:old.end_date,
SYSDATE
);
END mytrig;
/
【问题讨论】:
标签: database plsql triggers oracle10g constraints