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@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Rick Casey Sent: Thursday, February 24, 2005 5:51 PM To: pgsql-general@postgresql.org Subject: Re: [GENERAL] 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