Thread: how to tell if a tuple has been inserted in current transaction
Hi all,
I have a trigger function which is getting invoked on insert/update and within that trigger I would like to know if some tuple, from a different table referenced by foreign key constraint from the table with the trigger on it, was inserted within the same transaction as the insert/update that caused the trigger to fire.
I found that I can tell if the foreign tuple was inserted or updated by checking if its xmin == select txid_current(), but there doesn't appear to be any way to know if it was modified because of an INSERT or an UPDATE. I would like to distinguish between whether it was an insert or update that caused the row to be modified. Is this possible?
Thank you for any information.
On Thu, May 3, 2012 at 8:50 AM, pg noob <pgnube@gmail.com> wrote: > > Hi all, > > I have a trigger function which is getting invoked on insert/update and > within that trigger I would like to know if some tuple, from a different > table referenced by foreign key constraint from the table with the trigger > on it, was inserted within the same transaction as the insert/update that > caused the trigger to fire. > > I found that I can tell if the foreign tuple was inserted or updated by > checking if its xmin == select txid_current(), but there doesn't appear to > be any way to know if it was modified because of an INSERT or an UPDATE. I > would like to distinguish between whether it was an insert or update that > caused the row to be modified. Is this possible? just put a trigger on that table and scribble TG_OP into a field reserved for that... merlin