Re: AYUDA trigger no salgo del problema

From: "Ing(dot) Jhon Carrillo - Caracas, Venezuela" <jdigital(at)cantv(dot)net>
To: "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: AYUDA trigger no salgo del problema
Date: 2005-07-28 15:50:26
Message-ID: 00fa01c5938c$14a417d0$1400a8c0@tgusta2
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

nombre del trigger: descuento_plazas<>nombre del trigger dentro de la
function: contrato_plazas

creo que deberias devolver NULL en vez de NEW/OLD, debido a que la
transaccion ya fue realizada, pero realmente no estoy seguro, pruebalo a
ver como te va

RETURN <<NEW>>;
END IF;
RETURN OLD;
END;

Jhon Carrillo
jdigital (a) cantv.net
Caracas - Venezuela

----- Original Message -----
From: "P(at)blo Villad@" <andresv50(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, July 28, 2005 11:28 AM
Subject: [pgsql-es-ayuda] AYUDA trigger no salgo del problema

> Hola a todos de nuevo
> Soy nuevo en este cuento de los Triggers
>
> Muchas Gracias por la respuesta
> La verdad no dan solucion a mis problemas
>
> Lo q pasa es que tengo dos tablas
>
> CREATE TABLE cargo_dependencia (
> codigo character varying(2) NOT NULL,
> dependencia character varying(30),
> cargo character varying(30),
> nplazas smallint
> );
>
> CREATE TABLE contrato (
> numero character varying(2) NOT NULL,
> nombre character varying(30),
> cargo character varying(2) NOT NULL
> );
>
>
> SELECT * from cargo_dependencia ;
>
> codigo | dependencia | cargo | nplazas
> --------+-------------+------------+---------
> 02 | Mercadeo | Secretaria | 3
> 03 | Derecho | Docente | 4
> 04 | Medicina | Docente | 5
> 01 | Ingenieria | Decano | 2
> 04 | Medicina | Docente | 5
> 01 | Ingenieria | Decano | 2
>
>
> Select * from contrato;
>
> numero | nombre | cargo
> --------+---------+-------
> 01 | Sandra | 01
> 01 | Lorena | 03
> 01 | Johana | 02
> 01 | Diana | 04
> 02 | Marcela | 03
> 03 | Andres | 03
>
>
> ahora necesito que cuando se inserte un nuevo contrato
> en la tabla contratos
>
> INSERT INTO contrato VALUES ('04','Patricia','03');
>
> este contrato pertenece a una dependencia que es la 03
> que corresponde a
>
> codigo | dependencia | cargo | nplazas
> -----------------------------------------------------------
> 03 | Derecho | Docente | 4
>
> se disminuya en 1 el numero de plazas
>
> tengo el siguiente trigger
>
>
> DROP FUNCTION plazas() cascade;
>
>
> CREATE OR REPLACE FUNCTION plazas() RETURNS TRIGGER AS $contrato_plazas$
>
> BEGIN
> IF (TG_OP = 'INSERT') THEN
>
> UPDATE cargo_dependencia SET nplazas=nplazas-1 where
> Cargo=NEW.Cargo;
>
> --UPDATE contrato SET descuento=descuento-1 where
> --nombre_cafe=NEW.nombre_cafe;
>
> RETURN NEW;
> END IF;
> RETURN OLD;
> END;
>
>
> $contrato_plazas$ LANGUAGE plpgsql;
>
> CREATE TRIGGER descuento_plazas
> AFTER INSERT ON contrato
> FOR EACH ROW EXECUTE PROCEDURE plazas();
>
> y no me funciona
> QUE PUEDO HACER
> AYUDA - AYUDA
> MUCHAS GRACIAS
>
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>
> http://archives.postgresql.org/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Clarisa Savio Obeid 2005-07-28 15:52:11 unsuscribe
Previous Message René David Ortiz 2005-07-28 15:49:48 Diferencia en Caracteres