Thread: Trigger with delete

Trigger with delete

From
Matthias Teege
Date:
Moin,

I want to setup a trigger that removes entries from a
related table depented an the record in the main table. So
I try the following:

CREATE FUNCTION "delete_aufpos" (int4) RETURNS int  AS '
delete from subtable where key = $1'
LANGUAGE 'SQL';

CREATE TRIGGER delete_auftrag
    BEFORE DELETE ON maintable FOR EACH ROW
    EXECUTE PROCEDURE delete_aufpos(1);

The create function gives me the following message:

ERROR: function declared to return type int4, but final
query is not a retrieve

What is the return type of 'delete'?
How can I pass the key from the main table to the sub table?

Vielen Dank
Matthias




RE: Trigger with delete

From
Marc Britten
Date:
2 things

one, you need to enable plpgsql as a lang
see
http://www.postgresql.org/docs/programmer/xplang.htm#XPLANG-TITLE
for details

two , triggers need to call functions that return 'opaque'. so after delete
add return NEW;

-----Original Message-----
From: Matthias Teege [mailto:matthias@mteege.de]
Sent: Tuesday, June 20, 2000 8:07 AM
To: pgsql-general@postgresql.org
Subject: [GENERAL] Trigger with delete



Moin,

I want to setup a trigger that removes entries from a
related table depented an the record in the main table. So
I try the following:

CREATE FUNCTION "delete_aufpos" (int4) RETURNS int  AS '
delete from subtable where key = $1'
LANGUAGE 'SQL';

CREATE TRIGGER delete_auftrag
    BEFORE DELETE ON maintable FOR EACH ROW
    EXECUTE PROCEDURE delete_aufpos(1);

The create function gives me the following message:

ERROR: function declared to return type int4, but final
query is not a retrieve

What is the return type of 'delete'?
How can I pass the key from the main table to the sub table?

Vielen Dank
Matthias