Skip site navigation (1) Skip section navigation (2)

trigger para crear trigger

From: "Manuel A(dot) Estevez Fernandez" <stvzito(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: trigger para crear trigger
Date: 2009-03-25 17:10:37
Message-ID: 49CA658D.7050203@gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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

Responses

pgsql-es-ayuda by date

Next:From: juanDate: 2009-03-25 18:21:28
Subject: Re: trigger para crear trigger
Previous:From: fa sanchez caboDate: 2009-03-25 17:00:31
Subject: RE: [pgsql-es-ayuda] Necesito ayuda en la instalción de Psycopg2

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group