I am using postgresql version 7.2.3, and have the following situation.
When I attempt to add a function, I get the error CreateTrigger: function
mem_leveled() does not exist. Using the function in psql (i.e. SELECT
mem_leveled('fubar', 4, '2002/12/30 10:09:00 GMT'); ) works fine, I just
can't create a trigger for it.
I know its something stupid I'm doing (or not doing).
CREATE TABLE members (
name CHARACTER VARYING(256),
level smallint,
date_updated timestamptz,
... other stuff ...
)
CREATE TABLE mem_history (
name CHARACTER VARYING(256),
level smallint,
date_achieved timestamptz
)
CREATE FUNCTION mem_leveled (varchar, smallint, timestamptz) RETURN BOOLEAN
AS
'DELCARE
mem_lvl RECORD;
BEGIN
SELECT INTO mem_lvl * FROM mem_history WHERE name = $1 AND level = $2;
IF NOT FOUND THEN
INSERT INTO mem_history VALUES ($1, $2, $3);
END IF;
RETURN TRUE;
END;
' LANGUAGE 'plpgsql';
CREATE TRIGGER update_mem_level AFTER INSERT OR UPDATE
ON members FOR EACH ROW
EXECUTE PROCEDURE mem_leveled('name', 'level', 'date_updated');
------
Dave A.
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html