Hola
Me gustaria saber como puedo definir como un trigger sobre una tabla que cuando inserte cierto valor en una columna este cree el otro trigger que va a actuar sobre otra tabla, y una vez que haga un update a la primera tabla, el trigger elimine a otra funcion. Ya tengo definido el trigger que quiero crear y destruir es el siguiente :

/*CREATE OR REPLACE FUNCTION actualiza_marbete()
 RETURNS "trigger" AS
$BODY$

DECLARE
   inventario integer;
   mueble  smallint;
   marbete smallint;

BEGIN
   IF(TG_OP='INSERT') THEN
mueble = (SELECT max(id_mueble) FROM marbetes WHERE id_inventario=inventario AND id_sucursal=NEW.sucursal AND id_articulo=NEW.id_articulo); marbete = (SELECT max(id_marbete) FROM marbetes WHERE id_inventario=inventario AND id_sucursal=NEW.sucursal AND id_articulo=NEW.id_articulo); update marbetes SET cantidad=((SELECT cantidad FROM marbetes WHERE id_articulo=NEW.id_articulo AND id_mueble=mueble AND id_sucursal=NEW.sucursal AND id_marbete=marbete AND id_inventario=inventario) - NEW.cantidad ) WHERE id_articulo=NEW.id_articulo AND id_mueble=mueble AND id_sucursal=NEW.sucursal AND id_marbete=marbete AND id_inventario=inventario;
       END IF;
END IF; END;

$BODY$
 LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION actualiza_marbete()*/

El cual actua sobre la tabla de ventas. El otro trigger que creara a este deberá actuar sobre la tabla de inventario que al abrir uno nuevo (insert) cree la otra funcion y cuando lo cierre (update) la mate. Disculpen si tengo algun error en la programacion de esta funcion, soy todavia un novato con el manejo de base de datos y mas en posgresql.

Saludos
Manuel A. Estevez Fernandez

P.D. la version que estoy usando de postgresql es 8.1.11
--
TIP 4: No hagas 'kill -9' a postmaster

Responder a