From: | Aarón Ribas Núñez <ribas_ibiza(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Pregunta sobre trigger |
Date: | 2007-05-31 11:19:25 |
Message-ID: | BAY108-F179A2862D2060753F34C27822D0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, muy buenas. Tengo una duda sobre una práctica que estoy haciendo, es
una base de datos sobre Linux, en PostgreSQL, obviamente. Mi duda, o
problema es el siguiente: tengo que hacer un trigger sobre una facturación
mensual de un usuario. Tengo una tabla factura:
CREATE TABLE Factura(
nºfactura char(6) PRIMARY KEY,
NIF char(9),
importe float DEFAULT 0.0 NOT NULL,
IVA float DEFAULT 16.0,
id_correo integer,
fecha_cobro date NOT NULL,
constraint factura_usuario FOREIGN KEY (NIF) REFERENCES usuario(NIF),
constraint factura_cuentacorreo FOREIGN KEY (id_correo) REFERENCES
Cuentacorreo(id_cuentacorreo)
He hecho el trigger de la siguiente manera:
CREATE OR REPLACE FUNCTION factura_mensual()
RETURNS TRIGGER language 'PLPGSQL' AS'
DECLARE
res float;
lista_fact record;
BEGIN
select importe into lista_fact from factura where factura.fecha_cobro <
2007-05-01 and nif = 765432199;
res = lista_fact.importe * 1.16;
RETURN res;
END;';
CREATE TRIGGER factura_mensual AFTER INSERT OR UPDATE ON factura
FOR EACH ROW EXECUTE PROCEDURE factura_mensual();
cuando cargo la base de datos: \i bd.sql , me sale que se crea la funcion y
el trigger, sin errores en la compilacióm:
CREATE FUNCTION
CREATE TRIGGER
pero al hacer un insert, es cuando da error, hago lo siguiente:
INSERT INTO factura VALUES
('00600','123456789','200','16.0','3','2007-10-2');
y el error que me sale es:
ERROR: return type mismatch in function returning tuple at or near "res"
CONTEXT: compile of PL/pgSQL function "factura_mensual" near line 11
He probado muchas cosas, he mirado por foros y demás, pero no encuentro la
solución. Espero me puedan ayudar y disculpen las moletias. Gracias de
antemano
Un saludo, Enrique.
_________________________________________________________________
Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio con
MSN Entretenimiento. http://entretenimiento.msn.es/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-05-31 12:54:18 | Re: Pregunta sobre trigger |
Previous Message | Antonio Galicia | 2007-05-31 08:53:24 | Re: Otra vez en línea postgresql.org.mx |