Well, actually I do. If there's any error, I want nothing done. But my real point was that although there are 2 records in my source table with dataareaid = 'lil' and two with dataareaid = 'bol' I still get 4 times the 'lil' error message, while I was expecting 2 times the 'lil' error message and two times the 'bol' error message.
>>> Tom Lane <[EMAIL PROTECTED]> 2007-06-04 16:52 >>> "Bart Degryse" <[EMAIL PROTECTED]> writes: > CREATE TRIGGER "afh_test_tr" BEFORE INSERT > ON "public"."afh_test" FOR EACH ROW > EXECUTE PROCEDURE "public"."temp_func1"(); > > CREATE OR REPLACE FUNCTION "public"."temp_func1" () RETURNS trigger AS > $body$ > BEGIN > IF NEW.dataareaid =3D 'lil' THEN > RAISE EXCEPTION '% foutje %', NEW.dataareaid, NEW.name; > elsIF NEW.dataareaid =3D 'bol' THEN > RAISE EXCEPTION '% nog een foutje %', NEW.dataareaid, NEW.name; > END IF; > RETURN NULL; > END; > $body$ > LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; You probably don't want this trigger doing RETURN NULL; that's turning all your inserts into no-ops. regards, tom lane