Re: AYUDA trigger no salgo del problema

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: AYUDA trigger no salgo del problema
Date: 2005-07-28 15:48:03
Message-ID: c2d9e70e050728084842f89e20@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 7/28/05, P(at)blo Villad@ <andresv50(at)hotmail(dot)com> wrote:
> 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;
>

en la tabla cargo_dependencia el codigo se llama codigo... no cargo...
UPDATE cargo_dependencia SET nplazas=nplazas-1
where codigo=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
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message René David Ortiz 2005-07-28 15:49:48 Diferencia en Caracteres
Previous Message Hugo Gamarra 2005-07-28 15:41:39 RE: AYUDA trigger no salgo del problema