Add created and edited user and date in PostgreSQL

A minimal example on how to add attributes in PostgreSQL table with autofilling created user and date and last edited user and date.

ALTER TABLE IF EXISTS my_schema."MyTable" 
ADD COLUMN "_CREATED_USER" text DEFAULT CURRENT_USER,
ADD COLUMN "_CREATED_DATE" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "_EDITED_USER" text DEFAULT CURRENT_USER,
ADD COLUMN "_EDITED_DATE" timestamp without time zone DEFAULT CURRENT_TIMESTAMP;
CREATE FUNCTION my_schema.edited_date() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
  NEW."_EDITED_DATE" := NOW();
  RETURN NEW;
END;
$$;
ALTER FUNCTION my_schema.edited_date() OWNER TO postgres;

CREATE FUNCTION my_schema.edited_user() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
  NEW."_EDITED_USER" := CURRENT_USER;
  RETURN NEW;
END;
$$;
ALTER FUNCTION my_schema.edited_user() OWNER TO postgres;
CREATE TRIGGER MyTable_edited_user BEFORE UPDATE ON my_schema."MyTable" FOR EACH ROW EXECUTE PROCEDURE my_schema.edited_user();
CREATE TRIGGER MyTable_edited_date BEFORE UPDATE ON my_schema."MyTable" FOR EACH ROW EXECUTE PROCEDURE my_schema.edited_date();