CREATE OR REPLACE FUNCTION iss.accessor_trigger() RETURNS "trigger" AS $$ BEGIN IF (TG_WHEN = 'BEFORE') THEN IF (TG_OP = 'INSERT') THEN NEW.createdatetime := current_timestamp NEW.createuser := current_user ELSIF (TG_OP = 'UPDATE') THEN INSERT into iss.auditaccessor SELECT 'B','C',OLD.*; ELSIF (TG_OP = 'DELETE') THEN INSERT into iss.auditaccessor SELECT 'B','D',OLD.*; END IF; RETURN NEW; ELSIF (TG_WHEN = 'AFTER') THEN IF (TG_OP = 'INSERT') THEN ELSIF (TG_OP = 'UPDATE') THEN INSERT into iss.auditaccessor SELECT 'A','C',NEW.*; ELSIF (TG_OP = 'DELETE') THEN END IF; RETURN OLD; END IF; END $$ LANGUAGE plpgsql VOLATILE; I'm trying to use a single trigger to do a couple of things... The first is when a record is created to timestamp the createdatetime and the createuser columns with the current date/time or user. If there is a update then I want to make before and after images of the record and if a delete I want to keep the before image of the record. when I try and load this I get the following errors. I'm new to postgres so I'm not sure where I'm off here. Any help is greatly appreciated ERROR: syntax error at or near "$1" LINE 1: SELECT current_timestamp $1 := current_user ELSIF ( $2 =... ^ QUERY: SELECT current_timestamp $1 := current_user ELSIF ( $2 = 'UPDATE') THEN INSERT into iss.auditaccessor SELECT 'B','C', $3 .* CONTEXT: SQL statement in PL/PgSQL function "accessor_trigger" near line 8 ********** Error ********** ERROR: syntax error at or near "$1" SQL state: 42601 Context: SQL statement in PL/PgSQL function "accessor_trigger" near line 8 -- Michael Gould, Managing Partner Intermodal Software Solutions, LLC 904.226.0978 904.592.5250 fax -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general