passing parameters to a trigger function

From: "Larry White" <ljw1001(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: passing parameters to a trigger function
Date: 2006-03-21 14:21:43
Message-ID: d15ea14a0603210621p6229a81cs5bcdbaa6085c5c5c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I can't figure out how to pass parameters to a trigger function.

I checked the documentation and saw that trigger functions don't take
params in the usual fashion,
but couldn't find an example of a pl-sql trigger function that used
the original row data within the function.

What I want is an on update trigger that creates an entry in a second
table. The second (history) table has a subset of the columns in the
first.

Here's what I have so far:

-- THIS IS WRONG - CANT PASS PARAMS INTO TRIGGER FUNCTION

CREATE OR REPLACE FUNCTION audit_task ("param type declarations were
here") RETURNS TRIGGER AS '
-- create an audit trail record
BEGIN
-- Perform the insert

INSERT INTO TASK_h (id,
updated_by,
updated,
name,
description
)
VALUES ($1, $2, $3, $4, $5);

RETURN NULL;
END;

' LANGUAGE plpgsql;

-- THE TRIGGER
CREATE TRIGGER t_audit_task AFTER INSERT OR UPDATE ON task FOR EACH
ROW EXECUTE PROCEDURE audit_task();

So the question is, how do I access the row from the original table so I can
perform the insert?

Thank you much.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2006-03-21 14:27:10 Re: [GENERAL] A real currency type
Previous Message Terry Lee Tucker 2006-03-21 14:11:50 Re: Order of Update - Second Try