postgresql: deleting from a view
The triggered event is invoked for each row. 

The syntax is 

CREATE TRIGGER c_view_delete_trg INSTEAD OF DELETE
   ON c_view
   FOR EACH ROW
   EXECUTE PROCEDURE c_view_delete();

This means that the function is invoked once for each row that is being deleted. this is why it prints each time one row.