9.29. 事件觸發函式
PostgreSQL provides these helper functions to retrieve information from event triggers.
For more information about event triggers, see Chapter 39.
9.29.1. Capturing Changes at Command End
pg_event_trigger_ddl_commands
returns a list of DDL commands executed by each user action, when invoked in a function attached to a ddl_command_end
event trigger. If called in any other context, an error is raised. pg_event_trigger_ddl_commands
returns one row for each base command executed; some commands that are a single SQL sentence may return more than one row. This function returns the following columns:
Name | Type | Description |
---|---|---|
|
| OID of catalog the object belongs in |
|
| OID of the object itself |
|
| Sub-object ID (e.g., attribute number for a column) |
|
| Command tag |
|
| Type of the object |
|
| Name of the schema the object belongs in, if any; otherwise |
|
| Text rendering of the object identity, schema-qualified. Each identifier included in the identity is quoted if necessary. |
|
| True if the command is part of an extension script |
|
| A complete representation of the command, in internal format. This cannot be output directly, but it can be passed to other functions to obtain different pieces of information about the command. |
9.29.2. Processing Objects Dropped by a DDL Command
pg_event_trigger_dropped_objects
returns a list of all objects dropped by the command in whose sql_drop
event it is called. If called in any other context, an error is raised. This function returns the following columns:
Name | Type | Description |
---|---|---|
|
| OID of catalog the object belonged in |
|
| OID of the object itself |
|
| Sub-object ID (e.g., attribute number for a column) |
|
| True if this was one of the root object(s) of the deletion |
|
| True if there was a normal dependency relationship in the dependency graph leading to this object |
|
| True if this was a temporary object |
|
| Type of the object |
|
| Name of the schema the object belonged in, if any; otherwise |
|
| Name of the object, if the combination of schema and name can be used as a unique identifier for the object; otherwise |
|
| Text rendering of the object identity, schema-qualified. Each identifier included in the identity is quoted if necessary. |
|
| An array that, together with |
|
| Complement for |
The pg_event_trigger_dropped_objects
function can be used in an event trigger like this:
9.29.3. Handling a Table Rewrite Event
The functions shown in Table 9.98 provide information about a table for which a table_rewrite
event has just been called. If called in any other context, an error is raised.
Table 9.98. Table Rewrite Information Functions
Function Description |
Returns the OID of the table about to be rewritten. |
Returns a code explaining the reason(s) for rewriting. The exact meaning of the codes is release dependent. |
These functions can be used in an event trigger like this: