동일한 테이블에 새 레코드를 삽입하려는 테이블에 새 레코드를 삽입 할 때 트리거가 작동합니다.
내 트리거는 다음과 같습니다동일한 테이블에 레코드를 삽입하기위한 INSERT 트리거
create or replace trigger inst_table
after insert on test_table referencing new as new old as old
for each row
declare
df_name varchar2(500);
df_desc varchar2(2000);
begin
df_name := :new.name;
df_desc := :new.description;
if inserting then
FOR item IN (SELECT pid FROM tbl2 where pid not in(1))
LOOP
insert into test_table (name,description,pid) values(df_name,df_desc,item.pid);
END LOOP;
end if;
end;
는 내가이 같은 테이블에 삽입 할 저를 방해하는 생각
ORA-04091: table TEST_TABLE is mutating, trigger/function may not see it
같은 오류를 제공합니다.
그래서이 새 레코드를 동일한 테이블에 삽입 할 수 있습니다.
참고 : - 나는 데이터베이스로 오라클을 사용하고 돌연변이 당신이 트리거하고있는 테이블을 수정하는 행 수준 트리거를 가지고있는 시간을 발생
[Oracle 트리거 - 테이블 변경 문제] 가능한 복제본 (http://stackoverflow.com/questions/2138363/oracle-triggers-problem-with-mutating-tables) – APC