Trigger with delete

Started by Matthias Teegealmost 26 years ago2 messagesgeneral
Jump to latest
#1Matthias Teege
matthias@mteege.de

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

#2Marc Britten
mbritten@cybernet-usa.com
In reply to: Matthias Teege (#1)
RE: Trigger with delete

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