pgadmin4/docs/en_US/event_trigger_dialog.rst
2016-05-20 16:39:35 -04:00

65 lines
3.6 KiB
ReStructuredText

********************
Event Trigger Dialog
********************
Use the *Event Trigger* dialog to define an event trigger. Unlike regular triggers, which are attached to a single table and capture only DML events, event triggers are global to a particular database and are capable of capturing DDL events. Like regular triggers, event triggers can be written in any procedural language that includes event trigger support, or in C, but not in plain SQL.
The *Event Trigger* dialog allows you to implement options of the *CREATE EVENT TRIGGER* command. For more information about the *CREATE EVENT TRIGGER* command, see the PostgreSQL core documentation available at:
http://www.postgresql.org/docs/9.5/static/sql-createeventtrigger.html
The *Event Trigger* dialog organizes the development of a event trigger through the following dialog tabs: *General*, *Definition*, and *Security Labels*. The *SQL* tab displays the SQL code generated by dialog selections.
.. image:: images/event_trigger_general.png
Use the fields in the *General* tab to identify the event trigger:
* Use the *Name* field to add a descriptive name for the event trigger. The name will be displayed in the *pgAdmin* tree control.
* Use the drop-down listbox next to *Owner* to specify the owner of the event trigger.
* Store notes about the event trigger in the *Comments* field.
Click the *Definition* tab to continue.
.. image:: images/event_trigger_definition.png
Use the fields in the *Definition* tab to define the event trigger:
* Select a radio button in the *Enabled Status* field to specify a status for the trigger: *Enable* *Disable*, *Replica* *Always*.
* Use the drop-down listbox next to *Trigger function* to specify an existing function. A trigger function takes an empty argument list, and returns a value of type event_trigger.
* Select a radio button in the *Events* field to specify when the event trigger will fire: *DDL COMMAND START*, *DDL COMMAND END*, or *SQL DROP*.
* Use the *When* field to write a condition for the event trigger that must be satisfied before the event trigger can execute.
Click the *Security Labels* tab to continue.
.. image:: images/event_trigger_security.png
Use the *Security* tab to define security labels applied to the trigger. Click *Add* to add each security label.
* Specify a security label provider in the *Provider* field. The named provider must be loaded and must consent to the proposed labeling operation.
* Specify a a security label in the *Security Label* field. The meaning of a given label is at the discretion of the label provider. PostgreSQL places no restrictions on whether or how a label provider must interpret security labels; it merely provides a mechanism for storing them.
To discard a security label, click the trash icon to the left of the row and confirm deletion in the *Delete Row* dialog.
For more information about using security Labels, please see the PostgreSQL Core documentation available at:
http://www.postgresql.org/docs/current/static/sql-security-label.html
Click the *SQL* tab to continue.
.. image:: images/event_trigger_sql.png
Your entries in the *Event Trigger* dialog generate a generate a SQL command; you can review the command on the *SQL* pane.
* Click the *Info* button (i) to access online help.
* Click the *Save* button to save work.
* Click the *Cancel* button to exit without saving work.
* Click the *Reset* button to restore configuration parameters.
Example
=======
The following is an example of the sql command generated by user selections in the *Event Trigger dialog*:
.. image:: images/event_trigger_sql_example.png "FIXME"