Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group