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

Reply via email to