From: | "P(at)blo Villad(at)" <andresv50(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | AYUDA trigger no salgo del problema |
Date: | 2005-07-28 15:28:03 |
Message-ID: | BAY23-F22E06B5B4D06ACE848053AB3CF0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Hugo Gamarra | 2005-07-28 15:41:39 | RE: AYUDA trigger no salgo del problema |
Previous Message | Marco Villagrán | 2005-07-28 15:22:40 | Re: Portando Procedimiento de Oracle a Postgresql |