Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-sql by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group