pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Achilleas Mantzios <achill@matrix.gatewaynet.com>
To: pgsql-sql@postgresql.org
Subject: Re: delete on cascade
Date: Mon, 23 Oct 2006 12:00:20 +0300
Message-ID: <200610231200.20932.achill@matrix.gatewaynet.com> (raw)
In-Reply-To: <200610231049.16507.fluca1978@infinito.it>
References: <200610231049.16507.fluca1978@infinito.it>

Óôéò ÄåõôÝñá 23 Ïêôþâñéïò 2006 11:49, ï/ç Luca Ferrari Ýãñáøå:
> Hi all,
> I guess this is an already asked question, but I didn't found an answer, so
> apologize me. Imagine I've got two tables:
> skill(id,description)		// primary key => id
> family(id,description)	// primary key => id
> and I want to associate skills to families:
> ass_sf(id_skill,id_family)	// appropriate foreign keys
>
> Tables are already created and the database is running. Now I'd like to
> implement a delete cascade, thus when I delete a skill also its association
> with the family must be deleted. I gues I should have declared the skill
> table as follows:
> CREATE TABLE skill
> (
> 	id varchar(20) on delete cascade,
> 	description varchar(50),
> 	primary key(id)
> );
>
> right? The problem is: how can I alter the table to add the column

not right!!!
ON DELETE CASCADE is specified in FOREIGN KEY contsraints.
So that would be in ass_sf table.
If you find ALTER TABLE ass_sf command hard to run, then drob your 
ass_sf table and define it like

CREATE TABLE ass_sf (
.....
skill_id INT REFERENCES skill(id) ON DELETE CASCADE,
familly_id INT REFERENCES family(id) ON DELETE CASCADE
);

The above causes cascade deletes not only on skills but on families also.

> constraint now, without redeclaring the table?
> Thanks very much for helping me.
> Luca
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match

-- 
Achilleas Mantzios



view thread (8+ messages)  latest in thread

Message-ID: <200610231200.20932.achill@matrix.gatewaynet.com>
Permalink:  ../200610231200.20932.achill@matrix.gatewaynet.com/
Also on:    postgresql.org/message-id/200610231200.20932.achill@matrix.gatewaynet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: achill@matrix.gatewaynet.com
  Subject: Re: delete on cascade
  In-Reply-To: <200610231200.20932.achill@matrix.gatewaynet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox