[Pgsql-ayuda] triggers y funciones.

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Wed, 11 Jun 2003 14:35:54 -0400


On Sat, Jun 07, 2003 at 09:00:46PM -0400, DAVID A. GATICA GONZALEZ wrote:

> estoy recien empezando a trabajar con postgreSQL,

Bienvenido!

> y necesito si
> tienen ejemplos de triggers y funciones.
> lo que necesito hacer es :
> despues que se inserte un registro en una tabla ( ejemplo tabla_X ),
> automaticamente se inserten dos registros en otra tabla ( tabla _Y);
> eso se puede hacer ..?

Claro.

Algo del estilo

CREATE TABLE x (columna_1 int, columna_2 int);
CREATE TABLE y (valor int, valor_2 int);

CREATE or replace FUNCTION inserta_en_tabla_y () RETURNS trigger AS
'BEGIN
INSERT INTO Y (valor) VALUES (new.columna_1);
INSERT INTO Y (valor_2) VALUES (new.columna_2);
RETURN new;
END;' LANGUAGE plpgsql;

CREATE TRIGGER mi_trigger AFTER INSERT ON X 
FOR EACH ROW EXECUTE PROCEDURE inserta_en_tabla_y();

INSERT INTO x VALUES (128, 256);

SELECT * FROM y;
 valor | valor_2
-------+---------
   128 |
       |     256
(2 rows)

Para mayor referencia, la documentacion en www.postgresql.org/docs
es tu mejor alternativa.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Acepta los honores y aplausos y perderas tu libertad"