From: | "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Problema con Funcion y Trigger |
Date: | 2005-07-27 20:33:56 |
Message-ID: | BAY23-F385850F6C4BBD0D1655473B3CC0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Saludos a Todos....
Espero me puedan colaborar
Me encuentro un poco encartado
Y me urge el tiempo..
tengo el siguiente problema
tengo una tabla llamada cafe que posee un campo
el cual debe disminuirse en uno cada vez que se ejecute
una operacion de insertar sobre la tabla.
El problema es que para poder realizar esta operacion
necesito un parametro de la insercion.
eh intentado hacerlo con un trigger pero la verdad no
se si sea la manera mas adecuada.
CREATE OR REPLACE FUNCTION descuentox(varchar) RETURNS TRIGGER AS
$descuento_cafex1$
BEGIN
IF (TG_OP = 'INSERT') THEN
UPDATE cafe SET descuento=descuento-1 where nombre_cafe=$1;
RETURN NEW;
END IF;
RETURN NULL;
END;
$descuento_cafex1$ LANGUAGE plpgsql;
CREATE TRIGGER cafe_descuento
AFTER INSERT ON cafe
FOR EACH ROW EXECUTE PROCEDURE descuentox(varchar);
pero la verdad no funciona. Como hago para que la clausula
del where se compare con el parametro que debo recibir.
eh intentado hacerlo con una funcion pero la verdad no se como
se pueda hacer si esta funcion se debe ejecutar despues de una
operacion de insercion.
DROP FUNCTION descuento (varchar);
CREATE FUNCTION descuento(varchar) returns smallint AS'
UPDATE cafe SET descuento=descuento-2 where nombre_cafe=$1'
language 'sql';
Pero esto si que no funciona..
Ademas me gustaria saber si uno desde una funcion puede hacer llamado a un
trigger
Muchas Gracias..
Cualquier colaboracion seria de mucha ayuda...
De nuevo muchas gracias
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Jiménez Carrasco | 2005-07-27 20:36:34 | Re: Consulta fuera de topico |
Previous Message | Edwin Quijada | 2005-07-27 20:27:49 | Re: Consulta fuera de topico |