Thread-topic: basic trigger using OLD not working?
Title: Message
The
RAISE statement requires a % marker for each variable you want to include in the
output text.
-- Guy Rouillier
-----Original Message----- From:
pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx]
On Behalf Of Rick Casey Sent: Thursday, February 24, 2005
5:51 PM To: pgsql-general@xxxxxxxxxxxxxx Subject: Re:
basic trigger using OLD not working?
Thanks
much! That met with partial success; but getting closer.
The
error message about OLD went away (thankfully!), but there is still no data
from the OLD variable. Here is the code again:
create trigger
PEDIGREES_hist_del_trig AFTER DELETE on PEDIGREES FOR EACH
ROW EXECUTE PROCEDURE logPedigreesDel();
CREATE OR
REPLACE FUNCTION logPedigreesDel() RETURNS TRIGGER AS
' begin RAISE EXCEPTION ''OLD.famindid = '',
OLD.famindid; return OLD; end; ' LANGUAGE
plpgsql;
Which when it fires results in: cgb_lab_data=# \i
testphdtrig.sql psql:testphdtrig.sql:1: ERROR: OLD.famindid
=
Here is the code that creates the delete trigger:
create trigger PEDIGREES_hist_del_trig
AFTER DELETE
on PEDIGREES
EXECUTE PROCEDURE logPedigreesDel();
I think you forgot FOR EACH ROW. By default, the above creates a
STATEMENT trigger, in which you don't have access to individual rows.
regards, tom lane