Programación 

Variables especiales en PL/pgSQL

Cuando una función escrita en PL/pgSQL es llamada por un disparador tenemos ciertas variable especiales disponibles en dicha función. Estas variables son las siguientes:

NEW

Tipo de dato RECORD; Variable que contiene la nueva fila de la tabla para las operaciones INSERT/UPDATE en disparadores del tipo row-level. Esta variable es NULL en disparadores del tipo statement-level.

OLD

Tipo de dato RECORD; Variable que contiene la antigua fila de la tabla para las operaciones UPDATE/DELETE en disparadores del tipo row-level. Esta variable es NULL en disparadores del tipo statement-level.

TG_NAME

Tipo de dato name; variable que contiene el nombre del disparador que está usando la función actualmente.

TG_WHEN

Tipo de dato text; una cadena de texto con el valor BEFORE o AFTER dependiendo de como el disparador que está usando la función actualmente ha sido definido

TG_LEVEL

Tipo de dato text; una cadena de texto con el valor ROW o STATEMENT dependiendo de como el disparador que está usando la función actualmente ha sido definido

TG_OP

Tipo de dato text; una cadena de texto con el valor INSERT, UPDATE o DELETE dependiendo de la operación que ha activado el disparador que está usando la función actualmente.

TG_RELID

Tipo de dato oid; el identificador de objeto de la tabla que ha activado el disparador que está usando la función actualmente.

TG_RELNAME

Tipo de dato name; el nombre de la tabla que ha activado el disparador que está usando la función actualmente. Esta variable es obsoleta y puede desaparacer en el futuro. Usar TG_TABLE_NAME.

TG_TABLE_NAME

Tipo de dato name; el nombre de la tabla que ha activado el disparador que está usando la función actualmente.

TG_TABLE_SCHEMA

Tipo de dato name; el nombre de la schema de la tabla que ha activado el disparador que está usando la función actualmente.

TG_NARGS

Tipo de dato integer; el número de argumentos dados al procedimiento en la sentencia CREATE TRIGGER.

TG_ARGV[]

Tipo de dato text array; los argumentos de la sentencia CREATE TRIGGER. El índice empieza a contar desde 0. Indices inválidos (menores que 0 ó mayores/iguales que tg_nargs) resultan en valores nulos.

Related posts