我的表上有以下触发器,我面临的问题是在my_hist
表中当条件变为时插入新旧值updated = 'Y'
。
当条件变为updated = 'Y'
.
谢谢
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;
/
更新 1
如果我正在更新updated = 'Y'
,那么如果我有记录
id = 3, start_date='01-Jan-2014' and end_date='31-Jan-2014' 和更新的数据
id = 3, start_date=='01-Jan-2014' and end_date='31-Mar-2014'
然后我将在 my_hist 表中有两条记录
id = 3 and start_date='01-Jan-2014' and end_date='31-Jan-2014'
和
id = 3 and start_date='01-Jan-2014' and end_date='31-Mar-2014'
理想情况下,我应该只id = 3 and start_date='01-Jan-2014' and end_date='31-Jan-2014'
在 my_hist 表中,而不是第二行,end_date='31-Mar-2014'
因为那是新数据。