PostgreSQL
Synopsis
CREATE EVENT TRIGGER name
ON event
[ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
EXECUTE PROCEDURE function_name()
Description
CREATE EVENT TRIGGER
creates a new event trigger. Whenever the designated event occurs and the WHEN
condition associated with the trigger, if any, is satisfied, the trigger function will be executed. For a general introduction to event triggers, see Chapter 39. The user who creates an event trigger becomes its owner.
Parameters
- `name`
-
The name to give the new trigger. This name must be unique within the database.
- `event`
-
The name of the event that triggers a call to the given function. See Section 39.1 for more information on event names.
- `filter_variable`
-
The name of a variable used to filter events. This makes it possible to restrict the firing of the trigger to a subset of the cases in which it is supported. Currently the only supported `filter_variable
is `TAG.
- `filter_value`
-
A list of values for the associated `filter_variable
for which the trigger should fire. For `TAG, this means a list of command tags (e.g.,
'DROP FUNCTION'
). - `function_name`
-
A user-supplied function that is declared as taking no argument and returning type
event_trigger
.
Notes
Only superusers can create event triggers.
Event triggers are disabled in single-user mode (see postgres). If an erroneous event trigger disables the database so much that you can’t even drop the trigger, restart in single-user mode and you’ll be able to do that.
Examples
Forbid the execution of any DDL command:
CREATE OR REPLACE FUNCTION abort_any_command()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
RAISE EXCEPTION 'command % is disabled', tg_tag;
END;
$$;
CREATE EVENT TRIGGER abort_ddl ON ddl_command_start
EXECUTE PROCEDURE abort_any_command();
See Also
[.refentrytitle#ALTER EVENT TRIGGER], DROP EVENT TRIGGER, CREATE FUNCTION#
Prev | Up | Next |
---|---|---|
CREATE DOMAIN |
CREATE EXTENSION |
Copyright © 1996-2023 The PostgreSQL Global Development Group