Thread: 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/