MUTATING
Mutating problem in Triggers:
In a row level trigger, if the triggering event is update or delete and if a select is fired on the base table, then while the operation (update or delete or insert (after insert alone)) is performed, then the trigger fires with an error 'ORA-04091: table ... is mutating'. However, this problem does not arise in the statement level triggers and for before insert (row level) too.
Below are two ways to overcome this issue.
Use Instead Of Triggers
When writing a trigger where the base table is queried, declare the trigger as an autonomous transaction, which is called an autonomous trigger. Thus we can overcome the mutating problem by writing autonomous triggers. For info on autonomous transaction refer AUTONOMOUS TRANSACTION.