Problema con Funcion y Trigger

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

Responses

Browse pgsql-es-ayuda by date

  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