Problem with trigger function

From: Mira Dimitrijevic <mira(at)lanl(dot)gov>
To: pgsql-general(at)postgresql(dot)org
Subject: Problem with trigger function
Date: 2008-09-03 21:12:48
Message-ID: 3936E50E-763C-4536-9B42-0D68B57902E4@lanl.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,
I wrote the trigger function below and when trying to execute it, I
get the following error:

15:00:42 [CREATE - 0 row(s), 0.000 secs] [Error Code: 0, SQL
State: 42601] ERROR: syntax error at or near "INSERT"

I am using DBVisualizer's "SQL Commander" window, not the "create
funciton" option. I know the SQL is correct - I can execute it just
by itself. The problem is somewhere in the
syntax for a postgres trigger function. Any input on what the problem
might be would be just fabulous!

Many thanks,
Mira

CREATE OR REPLACE FUNCTION audit_sequence_update() RETURNS trigger AS '
BEGIN
IF tg_op = ''INSERT'' THEN
INSERT INTO audit_sequence_update(operation, "day",
owner_uid, "sequence")
VALUES
('INSERT', NEW."day", NEW.owner_uid, NEW."sequence");
ELSE
INSERT INTO audit_sequence_update(operation, "day",
owner_uid, "sequence")
SELECT
'UPDATE', "day", owner_uid, "sequence"
FROM sequence where isdid=NEW.isdid;
END IF;
RETURN NEW;
END
' LANGUAGE plpgsql;

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Raymond O'Donnell 2008-09-03 21:53:31 Re: Postgres does not start, gives no error
Previous Message Scott Marlowe 2008-09-03 20:21:41 Re: Oracle and Postgresql