Re: protected ON DELETE CASCADE

From: Murray Hobbs <murray(at)efone(dot)com>
To: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: protected ON DELETE CASCADE
Date: 2001-08-23 20:45:16
Message-ID: 3B856B5C.73DD284A@efone.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice


ok *click* i get it i get it

m

Oliver Elphick wrote:
>
> Murray Hobbs wrote:
> >
> >i neglected to show it properly
> >
> >have tables A, B, C, D PLUS a few others
> >
> >A <- B
> >
> > F
> > |
> > v
> >A <- C <- D
> > ^
> > |
> > E
> >
> >i want to delete from C and cascade any delete to E or F but not if
> >there are records in D
> >
> >what i have done is to have ON DELETE CASCADE on C's primary
> >
> >but force deletes to C through a function that will delete from C only
> >if there is no records in D
> >
> >but i would like to believe there is a better way - a way that does not
> >require that i do all my deletes through a function
>
> B REFERENCES A ON DELETE CASCADE
> C REFERENCES A ON DELETE CASCADE
> D REFERENCES C ON DELETE NO ACTION
> E REFERENCES C ON DELETE CASCADE
> F REFERENCES C ON DELETE CASCADE
>
> So if there is a deletion in A it cascades to B and C
>
> The deletion in C cascades to E and F, but fails if there is a
> reference in D. The failure causes a rollback of the transaction and
> thus the deletions in A, B, C, E and F do not happen after all.
>
> --
> Oliver Elphick Oliver(dot)Elphick(at)lfix(dot)co(dot)uk
> Isle of Wight http://www.lfix.co.uk/oliver
> PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
> GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
> ========================================
> "For God hath not appointed us to wrath, but to obtain
> salvation by our Lord Jesus Christ, Who died for us,
> that, whether we wake or sleep, we should live
> together with him."
> I Thessalonians 5:9,10

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message Murray Hobbs 2001-08-23 20:46:16 Re: protected ON DELETE CASCADE
Previous Message Jan Wieck 2001-08-23 20:21:07 Re: protected ON DELETE CASCADE