We created a usual trigger which seemed to be not firing or not working properly. Then we put some raise notices on it and saw that it was returning Null values. But why, it´s after insert and is a primary key, cannot be null. create function MyFunction() returns trigger as $$ begin raise '%', new.MyPK; end$$ language plpgsql; create trigger MyTrigger after insert on MyTable execute procedure MyFunction(); We forgot FOR EACH ROW/STATEMENT when created our trigger. On docs it´s written {ROW/STATEMENT} between {}, so it´s needed. But why did it accepted our command to create that trigger ? -- Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html