First, see this site for several different mutating table error solutions.
Second, remember that in a trigger you cannot try to manipulate the table that "triggered the trigger". But, you have all the :old.column values available to you which contain the values prior to the delete action occurring. Your trigger should be using these values to populate your staging tables and NOT be trying to re-read the parent table to get any data.
For More Information
- Dozens more answers to tough Oracle questions from Karen Morton are available.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.
This was first published in January 2003