CREATE OR REPLACE FUNCTION validate_actions_insert() RETRUNS OPAQUE AS 'CREATE OR REPLACE FUNCTION validate_actions_insert() RETURNS OPAQUE AS $$
RAISE EXCEPTION 'writing access forbidden for user %', NEW.user;DECLARE rs RECORD;
BEGIN
SELECT INTO rs * FROM user_data WHERE name = NEW.user and write_access = 't';
IF NOT FOUND THEN
RAISE EXCEPTION ''writing access forbidden for user '', NEW.user;
$$ LANGUAGE plpgsql;END IF;
RETURN NEW; END; ' LANGUAGE plpgsql;
CREATE TRIGGER tg_actions BEFORE INSERT OR UPDATE ON actions FOR EACH ROW EXECUTE PROCEDURE validate_actions_insert();
Yugi,
I made a few minor modifications as shown above and the trigger function works great. I think I'll also use triggers to keep a history of record changes for auditing.
Thanks,
Dale
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match