From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Michael Dyrby Jensen <dyrby(at)nork(dot)auc(dot)dk> |
Cc: | <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Deletion Recursively |
Date: | 2001-10-29 17:51:19 |
Message-ID: | 20011029094657.P9662-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Fri, 26 Oct 2001, Michael Dyrby Jensen wrote:
> Greetings.
>
> I am fairly new with the postgresql database.
> And I have run into a problem, which I hope someone can help me with.
>
> I am doing a school project, where I have chosen to learn to use this powerful tool, so I am using it to
> handle a fictive company of banner advertising.
>
> I need to register Advertisers, who got some Campaigns, and these
> campaigns have banners.
> I have an Advertiser table, a campaign table and a banner table.
>
> an advertiser hold references to the campaigns that he own, and the
> campaigns have references to the banners that they own.
>
> My question is then: "How do I make the Database delete the campaigns
> and banners linked to the advertiser, when I delete him?"
>
> A small example would really really help me alot.
> (with small explanation too ofcause =) )
If I'm understanding your problem correctly...
(untested, but I think I got the syntax stuff right)
create table advertiser (
advid serial primary key,
name varchar,
...
);
create table campaigns (
campid serial primary key,
advid integer references advertisers(advid)
on delete cascade on update cascade,
-- Make a foreign key constraint to the advertiser
-- table such that a campaign must either have a
-- NULL advid or a valid one at all times. If the
-- advid is updated in advertiser, all of the ones
-- in campaign that references that one are updated
-- (on update cascade). If a row is deleted in
-- advertiser, all rows in campaign that reference
-- that one are deleted (on delete cascade)
...
);
create table banners (
bannerid serial,
campid integer references campaigns(campid)
on delete cascade on update cascade,
...
);
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2001-10-29 18:30:23 | Re: PostgreSQL, Java & JDBC |
Previous Message | Stephan Szabo | 2001-10-29 17:45:56 | Re: delete queires |