幾天前發佈了一個問題,併成功啓動了我的觸發器! 但有一些新的問題。更新和刪除Oracle觸發器
我有兩個表:
CREATE TABLE "ASSESSMENT"
( "ASSESSMENT_NAME" VARCHAR2(50) NOT NULL ENABLE,
"DEADLINE_DATE" DATE NOT NULL ENABLE,
CONSTRAINT "ASSESSMENT_PK" PRIMARY KEY ("ASSESSMENT_NAME") ENABLE
)
CREATE TABLE "ASSESSMENT_ANNOUNCEMENT"
( "ASSESSMENT_NAME" VARCHAR2(50) NOT NULL ENABLE,
"DEADLINE_DATE" DATE NOT NULL ENABLE,
"ATTENTION" VARCHAR2(500) NOT NULL ENABLE,
CONSTRAINT "ASSESSMENT_ANNOUNCEMENT_PK" PRIMARY KEY ("ASSESSMENT_NAME") ENABLE
)
觸發我:
CREATE OR REPLACE TRIGGER "TEST"
AFTER INSERT OR UPDATE OR DELETE
ON ASSESSMENT
FOR EACH ROW
BEGIN
IF :new.DEADLINE_DATE >= SYSDATE - 7
THEN
INSERT INTO ASSESSMENT_ANNOUNCEMENT(ASSESSMENT_NAME, DEADLINE_DATE ,ATTENTION)
VALUES(:new.ASSESSMENT_NAME, :new.DEADLINE_DATE, 'DEADLINE IS 7 DAYS OR LESS!');
END IF;
END;
插入正常工作跨越表。但是,當我更新ASSESSMENT
表時,插入在ASSESSMENT_ANNOUNCEMENT
表中的新行是 - 它未更新。
從ASSESSMENT
表中刪除將從ASSESSMENT
表中刪除行,但從 表中刪除該行的ASSESSMENT_ANNOUNCEMENT
表。
任何幫助和/或指導將是太棒了!
另請注意,對於DELETE,NEW.DEADLINE_DATE值將爲NULL。 – eaolson 2013-03-02 21:54:04