It is recommended that a trigger not include SELECT statements that return results to the user, since special handling for these returned results would have to be written into every application in which modifications to the trigger table are allowed.
You cannot create a trigger on a view.
You can use the SET statement inside a trigger. With SET, the option you invoke remains in effect during the execution of the trigger and then reverts to its former setting when the trigger is completed.
A TRUNCATE TABLE statement is not caught by a DELETE trigger. Although a TRUNCATE TABLE statement is, in effect, like a DELETE without a WHERE clause (it removes all rows), it is not logged and thus cannot execute a trigger. Since permission for the TRUNCATE TABLE statement defaults to the table owner and is not transferable, only the table owner should be concerned about inadvertently circumventing a DELETE trigger with a TRUNCATE TABLE statement.
The WRITETEXT statement, whether logged or unlogged, does not activate a trigger.