Inicio

Novedades de pgsql en la 7.0

Entrevista con Bruce Momjian

Manejo de Estilos de Fechas en PostgreSQL

Introducción a los Triggers en C para PostgreSQL

Ligas interesantes

Ejecutando el trigger

Ejecutando el trigger

Ejecutando el trigger

Para poder ejecutar nuestro trigger se necesitan dos instrucciones: la primera que declara la función y prepara el enlace con la biblioteca compartida al backend, y la otra que declare a dicha función como trigger dentro de una acción determinada.

Declaremos la función

Para declarar la función a enlazar debemos, dentro de nuestra terminal de PostgreSQL (psql), crear una función dentro de PostgreSQL, con esto agregará dicha función a su tabla de pg_proc y podrá ser reutilizada sobre cualquier acción en nuestra base de datos.

La sentencia a ejecutar para nuestro caso sería:

mydb=> CREATE FUNCTION create_script()
		RETURNS opaque	                
		AS '/ruta/a/replica.o'	                
	LANGUAGE 'c';
  

Declaremos el trigger

Ahora que tenemos nuestra función definida dentro de PostgreSQL, podemos hacer uso de ella para cuando la necesitemos. El problema ahora es que necesitamos hacer uso de ella de manera transparente y cuando suceda un evento específico. Para ellos ejecutamos una segunda sentencia donde declaramos la creación de un trigger. La definición de los triggers se almacenan en la tabla pg_trigger.

Para nuestro ejemplo se haría lo siguiente:

mydb=> CREATE TRIGGER at_insert_on_venta AFTER
			INSERT ON venta
			FOR EACH ROW EXECUTE PROCEDURE
			create_script('/home/dba/replica.sql');
  

Aquí podemos observar que podemos tener dos tipos de trigger en cuanto a su momento de ejecución: antes y después del evento. Los trigger ejecutados antes del evento esencialmente sirven para prevenir y verificar ciertos estados previos al evento en la base de datos, y los triggers ejecutados de manera posterior al evento son para llevar a cabo ciertas tareas en cascada.