Professional Documents
Culture Documents
--INSERT
CREATE OR REPLACE FUNCTION INSERT_SAL() RETURNS TRIGGER AS
$BODY$
BEGIN
IF(NEW.SAL + (SELECT SUM(SAL)
FROM EMPREGADOS E
WHERE
E.DEPTO=NEW.DEPTO))>(SELECT ORCAMENTO
--UPDATE
CREATE OR REPLACE FUNCTION UPDATE_SAL() RETURNS TRIGGER AS
$BODY$
BEGIN
IF(NEW.SAL + (SELECT SUM(SAL)
LANGUAGE plpgsql;
--Questo 2 a)
Escreva outro trigger VdelR para manter a
consistncia de V com relao a remoes em R
END;
$BODY$
LANGUAGE plpgsql;
RETURN OLD;
ELSIF ((NEW.A > 5) AND (OLD.A > 5)) THEN
UPDATE V SET V.A = NEW.A WHERE R.A = V.A;
RETURN NEW;
ELSIF ((NEW.A > 5) AND (OLD.A <= 5)) THEN
INSERT INTO V SELECT * FROM R WHERE NEW.A=R.A;
RETURN NEW;
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
INSERT INTO Vc
SELECT A, B FROM R;
$BODY$
BEGIN
INSERT INTO Vc(A,B) SELECT A,B FROM NEW;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
$BODY$
BEGIN
INSERT INTO Vc(A,B,C) SELECT A, B ,C
FROM R,NEW WHERE R.B = NEW.B;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;