Re: Deletion Recursively
От | Stephan Szabo |
---|---|
Тема | Re: Deletion Recursively |
Дата | |
Msg-id | 20011029094657.P9662-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Deletion Recursively (Michael Dyrby Jensen <dyrby@nork.auc.dk>) |
Список | 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 updatecascade,-- Make a foreign key constraint to the advertiser-- table such that a campaign must either have a-- NULL advidor a valid one at all times. If the-- advid is updated in advertiser, all of the ones-- in campaign that referencesthat 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,... );
В списке pgsql-sql по дате отправления: