CREATE OR REPLACE TRIGGER "EMP" AFTER
UPDATE ON "EMP" FOR EACH ROW
BEGIN
IF (
:NEW.RQ<>:OLD.RQ OR
:NEW.name<>:OLD.name) THEN
UPDATE EMP_1
SET
RQ=:NEW.RQ,
NAME=:NEW.name
WHERE DW=:OLD.DW ;
END IF;
END;
修改可以更新,但我把rq删掉,或添加新值emp1表的rq还是不变.求大侠,求原因
UPDATE ON "EMP" FOR EACH ROW
BEGIN
IF (
:NEW.RQ<>:OLD.RQ OR
:NEW.name<>:OLD.name) THEN
UPDATE EMP_1
SET
RQ=:NEW.RQ,
NAME=:NEW.name
WHERE DW=:OLD.DW ;
END IF;
END;
修改可以更新,但我把rq删掉,或添加新值emp1表的rq还是不变.求大侠,求原因
IF (((:NEW.RQ is not null and :OLD.RQ is null)or(:NEW.RQ is null and :OLD.RQ is not null)or
:NEW.RQ<>:OLD.RQ OR
:NEW.name<>:OLD.name) THEN
UPDATE EMP_1
SET
RQ=:NEW.RQ,
NAME=:NEW.name
WHERE DW=:OLD.DW ;
END IF;
UPDATE EMP_1
SET
RQ=:NEW.RQ,
NAME=:NEW.name
WHERE DW=:OLD.DW ;
END IF;
加nvl再判断
CREATE OR REPLACE TRIGGER tri_emp_u
AFTER UPDATE
ON emp
FOR EACH ROW
BEGIN
IF ( NVL (:NEW.rq, '^') <> NVL (:OLD.rq, '^')
OR NVL (:NEW.NAME, '^') <> NVL (:OLD.NAME, '^')
)
THEN
UPDATE emp_1
SET rq = :NEW.rq,
NAME = :NEW.NAME
WHERE dw = :OLD.dw;
END IF;
END;
看看到底程序的怎么走的,各个值是多少?