Обсуждение: Trigger/Function Problem
                                Table "mp3user"
     Attribute   |    Type     |                     Modifier
--------------+-------------+--------------------------------------------------
       id           | integer     | not null default
nextval('mp3user_id_seq'::text)
      nick         | varchar(20) |
                 Table "mp3user_data"
 Attribute    |    Type        |       Modifier
------------+-------------+----------------------
id               | integer        | not null
imie            | varchar(30)  | not null
nazwisko     | varchar(30)  | not null
I have to table looking like the above (only bigger).
What I want to do I to set a trigger which ON DELETE from "mp3user"
table
will automatically DELETE a row from "mp3user_data" table.
The index in the mp3user is the same as the id from mp3user_data which
should be errased. I've tried looking at the helps in the manual by
about Triggers and Function they kinda suck.
If anyone could solve my problem I would be very, Very grateful.
If possible mail me at: <a
href="mailto:kowal@nawigator.pl">kowal@nawigator.pl</a>
Monsier Kowal
			
		This sounds like it might be better handled by foreign keys. You can just
add a constraint to mp3user_data:
FOREIGN KEY (id) REFERENCES mp3user (id) ON DELETE CASCADE. That will
automatically delete matching values in mp3user_data when something is
deleted from mp3user.
Greg
----- Original Message -----
From: <kowal@nawigator.pl>
To: <pgsql-general@postgresql.org>
Sent: Wednesday, February 07, 2001 10:02 AM
Subject: Trigger/Function Problem
>                                 Table "mp3user"
>      Attribute   |    Type     |                     Modifier
> --------------+-------------+---------------------------------------------
-----
>
>        id           | integer     | not null default
> nextval('mp3user_id_seq'::text)
>       nick         | varchar(20) |
>
>                  Table "mp3user_data"
>  Attribute    |    Type        |       Modifier
> ------------+-------------+----------------------
> id               | integer        | not null
> imie            | varchar(30)  | not null
> nazwisko     | varchar(30)  | not null
>
> I have to table looking like the above (only bigger).
>
> What I want to do I to set a trigger which ON DELETE from "mp3user"
> table
> will automatically DELETE a row from "mp3user_data" table.
>
> The index in the mp3user is the same as the id from mp3user_data which
> should be errased. I've tried looking at the helps in the manual by
> about Triggers and Function they kinda suck.
>
> If anyone could solve my problem I would be very, Very grateful.
> If possible mail me at: <a
> href="mailto:kowal@nawigator.pl">kowal@nawigator.pl</a>
>
> Monsier Kowal
>
>
			
		kowal@nawigator.pl writes:
>                                 Table "mp3user"
>      Attribute   |    Type     |                     Modifier
> --------------+-------------+--------------------------------------------------
>
>        id           | integer     | not null default
> nextval('mp3user_id_seq'::text)
>       nick         | varchar(20) |
>
>                  Table "mp3user_data"
>  Attribute    |    Type        |       Modifier
> ------------+-------------+----------------------
> id               | integer        | not null
> imie            | varchar(30)  | not null
> nazwisko     | varchar(30)  | not null
>
> I have to table looking like the above (only bigger).
>
> What I want to do I to set a trigger which ON DELETE from "mp3user"
> table
> will automatically DELETE a row from "mp3user_data" table.
Looks like you want to use a foreign key.  Declare your mp3user_data table
something like this:
CREATE TABLE mp3user_data (
  id integer references mp3user on delete cascade,
  ...
);
See http://www.postgresql.org/users-lounge/docs/7.0/user/sql-createtable.htm
for details.
--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/