Hi,

at least with PostgreSQL 7.1 it was possible to create a trigger on a
view. 7.2 seems to fail with:

   psql:t:25: ERROR:  CreateTrigger: relation "egg_view" is not a table

is there any replacement so that inserting somewhere acts on multiple
tables ?

Thank you.

Code reference: (stupid, real code is more complex and uses multiple
                 tables)

DROP TRIGGER t_egg ON egg_view;
DROP FUNCTION f_egg_insert ();
DROP VIEW egg_view;
DROP TABLE egg;
DROP SEQUENCE egg_id_seq;

CREATE TABLE egg(id SERIAL,
                 description TEXT,
                 UNIQUE(id), PRIMARY KEY(id));

CREATE VIEW egg_view
   AS SELECT description FROM egg;

CREATE FUNCTION f_egg_insert ()
   RETURNS opaque
   AS 'BEGIN
          INSERT INTO egg (description) VALUES(NEW.description);
       END;'
   LANGUAGE 'plpgsql';

CREATE TRIGGER t_egg
   BEFORE INSERT
   ON egg_view
   FOR EACH ROW
   EXECUTE PROCEDURE f_egg_insert();





---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to