CREATE [ OR REPLACE ] CONSTRAINT TRIGGER $name$ AFTER { $event$ [ OR ... ] }
    ON $table_name$
    FROM $referenced_table_name$
    [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
    FOR EACH ROW
    [ WHEN ( $condition$ ) ]
    EXECUTE { FUNCTION | PROCEDURE } $function_name$ ( $arguments$ )

CREATE [ OR REPLACE ] TRIGGER $name$ BEFORE { $event$ [ OR ... ] }
    ON $table_name$
    [ FOR [ EACH ] { ROW | STATEMENT } ]
    [ WHEN ( $condition$ ) ]
    EXECUTE { FUNCTION | PROCEDURE } $function_name$ ( $arguments$ )

CREATE [ OR REPLACE ] TRIGGER $name$ AFTER { $event$ [ OR ... ] }
    ON $table_name$
    [ REFERENCING { { OLD | NEW } TABLE [ AS ] $transition_relation_name$ } [ ... ] ]
    [ FOR [ EACH ] { ROW | STATEMENT } ]
    [ WHEN ( $condition$ ) ]
    EXECUTE { FUNCTION | PROCEDURE } $function_name$ ( $arguments$ )

CREATE [ OR REPLACE ] TRIGGER $name$ INSTEAD OF { $event$ [ OR ... ] }
    ON $table_name$
    [ FOR [ EACH ] { ROW | STATEMENT } ]
    EXECUTE { FUNCTION | PROCEDURE } $function_name$ ( $arguments$ )

where $event$ is:

INSERT |
    UPDATE [ OF $column_name$ [ , ... ] ] |
    DELETE |
    TRUNCATE
