트리거를 실행할 때마다 ORA-04091 오류 (트리거 (또는 함수)가 해당 테이블을 읽지 않도록 다시 작성하십시오)가 표시됩니다. ,오라클 - 트리거를 다시 작성하십시오.
create or replace TRIGGER comment_date_trigger
BEFORE INSERT OR UPDATE
ON "comment"
FOR EACH ROW
DECLARE
date_article TIMESTAMP;
date_parent TIMESTAMP;
BEGIN
IF :NEW."comment_parent_id" IS NOT NULL THEN
SELECT "comment_date" INTO date_parent FROM "comment_view" WHERE "comment_id" = :NEW."comment_parent_id";
END IF;
SELECT "article_date" INTO date_article FROM "article" WHERE "article_id" = :NEW."comment_article_id";
IF :NEW."comment_date" > SYSTIMESTAMP THEN
RAISE_APPLICATION_ERROR(-20003, '...');
ELSIF :NEW."comment_date" < date_article THEN
RAISE_APPLICATION_ERROR(-20005, '...');
ELSIF :NEW."comment_date" < date_parent THEN
RAISE_APPLICATION_ERROR(-20006, '...');
END IF;
END;
이 문제를 해결하는 가장 쉬운 해결책은 무엇인가하십시오 여기
트리거입니까? 보시다시피 뷰를 사용하려고했지만 문제가 남아 있습니다.감사합니다.
삽입 * 업데이트 * * * 삽입 * 업데이트 * 전에 * 변경 한 경우 작동합니까? 다음과 같이 변경하지 않으므로 동일한 효과가 있어야합니다. new. 밸류에이션이 없으면 밸리데이션에 실패하면 트랜잭션을 롤백 할 것이다. –
여전히 동일합니다. – KRiSTiN