INSERT-trigger für das einfügen von Datensatz in der gleichen Tabelle

Ich habe einen trigger, der das Feuer auf einfügen eines neuen Datensatzes in der Tabelle in dieser möchte ich einfügen neuen Datensatz in der gleichen Tabelle.
Mein trigger ist :

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;

seine geben, ein Fehler wie

ORA-04091: table TEST_TABLE is mutating, trigger/function may not see it

ich denke, dass es verhindert, dass mir zum einfügen in die gleiche Tabelle.
also, wie kann ich das einfügen dieses neuen Datensatz in der gleichen Tabelle.

Hinweis :- ich bin mit Oracle-Datenbank

InformationsquelleAutor Yagnesh Agola | 2011-11-17

Schreibe einen Kommentar