| 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: | Whole Thread | Raw Message | 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 ;)
| 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 |