Re: Order of trigger execution: AFTER DELETE ON EACH ROW doesn't appear to be working properly

From: "Christopher Maier" <maier(at)med(dot)unc(dot)edu>
To: aklaver(at)comcast(dot)net
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Order of trigger execution: AFTER DELETE ON EACH ROW doesn't appear to be working properly
Date: 2008-10-13 20:12:20
Message-ID: 1A429B71-3CE0-4AA9-B70B-B917EAEF6BE9@med.unc.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On Oct 13, 2008, at 3:08 PM, Adrian Klaver wrote:

> -------------- Original message ----------------------
> From: "Christopher Maier" <maier(at)med(dot)unc(dot)edu>
> <Snip>
>
>>
>> As you can see, doing a row-by-row delete works fine, but when
>> doing a
>> bulk delete, all the before triggers are grouped together, as are all
>> the after triggers.
>>
>> Why are these calls not interleaved (e.g. BEFORE DELETE for record 1,
>> AFTER DELETE for record 1, BEFORE DELETE for record 2, AFTER DELETE
>> for record 2, etc.). Is there any way I can get them to be
>> interleaved? This causes problems for my application because if
>> dependent rows are not deleted immediately after the row that
>> supports
>> it, then I can get "orphaned" rows left in the table that have no
>> supporting rows.
>>
>> Thanks,
>> Chris
>>
>
> Is not possible to delete the dependent rows from within the BEFORE
> trigger?
>
> --
> Adrian Klaver
> aklaver(at)comcast(dot)net

After playing around with it, yes, it is possible. I've reworked my
code to delete dependent rows before the row itself is deleted, and it
works as desired.

Thanks,
Chris

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Craig Ringer 2008-10-14 07:48:33 Re: EXISTS
Previous Message Scott Marlowe 2008-10-13 19:52:22 Re: Updating Query of 1 table from data in another