Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se llama trigger (o disparador) al código que se ejecuta automáticamente cuando se realiza una
determinada acción sobre la base de datos, tenemos tres tipos triggers:
Triggers de tabla. Se trata de triggers que se disparan cuando ocurre una acción DML sobre una
tabla.
Triggers de vista. Se lanzan cuando ocurre una acción DML sobre una vista.
Triggers de sistema. Se disparan cuando se produce un evento sobre la base de datos (conexión
de un usuario, borrado de un objeto,…)
TRIGGERS EN POSTGRESQL
Un trigger en PostgreSQL consta de dos partes:
Primero, el tipo de retorno ya no es un tipo normal de los que estudiamos anteriormente para
PostgreSQL, sino el tipo especial trigger
Segundo, dependiendo de las acciones del trigger, el parámetro en el comando RETURN puede
variar.
Definición del trigger
Antes de empezar a definir el trigger es necesario conocer unas cuantas variables del sistema que
por defecto que nos provee PostgreSQL, éstas son:
CURRENT_USER = Nos muestra el nombre del usuario que está actualmente conectado a la base de
datos y que ejecuta las sentencias.
CURRENT_DATE = nos muestra la fecha actual del sistema
CURRENT_TIME = Nos muestra la hora actual del sistema.
DIFERENCIA ENTRE BEFORE Y AFTER
Los triggers BEFORE se utilizan cuando queremos que la validación se lleve a cabo antes de realizar
el evento. Por ejemplo, usted ejecuta una base de datos de un banco, en esta tenemos la tabla
cuentas y la tabla operaciones. Si un usuario hace un retiro de su cuenta, usted quiere asegurarse
de que el usuario tenga suficientes fondos en su cuenta antes de realizar el retiro. El trigger BEFORE
permitirá hacer esta validación antes de realizar la transacción si el saldo de las cuentas no es
suficiente.
Los triggers AFTER se utilizan cuando queremos almacenar información de una tabla en otra. Estos
se ejecutan después de que se han realizado los cambios en la base de datos. Volvamos a nuestro
ejemplo anterior. Después de una transacción exitosa, nos gustaría que actualizar la tabla cuentas,
el trigger AFTER permitirá realizar esta operación.