Thread: List of error messages
Hi, I couldn't find any explanations of error messages in the docs. I get this error message: ERROR: triggered data change violation on relation "22" after doing DELETE FROM "22" WHERE id = 36; There's no foreign keys referring to this table, nor any triggers that I have explicitly defined. This occurs inside a transaction. When I tried it outside the transaction it worked fine! Anyone got any idea of what is going on? Do you need more information? Cheers, Gisle
Gisle Dankel wrote: > > Hi, > I couldn't find any explanations of error messages in the docs. > > I get this error message: > ERROR: triggered data change violation on relation "22" > > after doing > > DELETE FROM "22" WHERE id = 36; > > There's no foreign keys referring to this table, nor any triggers that I > have explicitly defined. > This occurs inside a transaction. When I tried it outside the transaction > it worked fine! > > Anyone got any idea of what is going on? > Do you need more information? Maybe this table is the referring one in a foreign key relationship? Triggers/foreign keys are the only things that can cause the above error message. It is a requirement of the SQL99 specs that one and the same row, that is part of referential integrity constraints or triggers, cannot be touched twice during a transaction. So if you did (in the same transaction) UPDATE "22" SET "22 A)" = 2.2 WHERE id = 36; then the above DELETE might be forbidden as of the specs. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com #
Hi Jan, > Gisle Dankel wrote: > > > > Hi, > > I couldn't find any explanations of error messages in the docs. > > > > I get this error message: > > ERROR: triggered data change violation on relation "22" > > > > after doing > > > > DELETE FROM "22" WHERE id = 36; > > > > There's no foreign keys referring to this table, nor any triggers that I > > have explicitly defined. > > This occurs inside a transaction. When I tried it outside the transaction > > it worked fine! > > > > Anyone got any idea of what is going on? > > Do you need more information? > > Maybe this table is the referring one in a foreign key > relationship? > > Triggers/foreign keys are the only things that can cause the > above error message. It is a requirement of the SQL99 specs > that one and the same row, that is part of referential > integrity constraints or triggers, cannot be touched twice > during a transaction. > > So if you did (in the same transaction) > > UPDATE "22" SET "22 A)" = 2.2 WHERE id = 36; > > then the above DELETE might be forbidden as of the specs. > > Yes, that's it ! The element was inserted in the same transaction. I'll have to remove the foreign key constraints. Cheers, Gisle