Ask the Expert

Mutating table error in trigger

How can I write a trigger in Oracle 8? I keep getting a mutating table error. I need to use a SQL query on the table for which I'm writting this trigger.

    Requires Free Membership to View

You can write a trigger which queries the table that forced the trigger to fire. So that part is not a problem. You get a Mutating table error when you attempt to modify the table that caused the trigger to fire. What happens is a change (insert/update/delete) occurs on that table. So a trigger gets fired. In that trigger, you perform a change on that table. The trigger will want to fire again. But the system detects that the change is caused by the trigger itself, not something else. This is called a mutating table error. So don't modify the table in the table's trigger and you won't see this error.

For More Information

  • What do you think about this answer? E-mail the editors at editor@searchDatabase.com with your feedback.
  • 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 April 2002

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: