Como uso columnas de distintas tablas en una misma funcion?

Como uso columnas de distintas tablas en una misma funcion?

Al momento de hacer un insert o update en la tabla dat_personales (campo documento) tengo que actualizar tambien la tabla sueldos en el mismo campo.
Mi funcion:
CREATE OR REPLACE FUNCTION save_dni() RETURNS TRIGGER AS $save_dni$
DECLARE
BEGIN
NEW.documento := --aqui no se como llamar a la
--columna documento de la otra tabla
RETURN NEW;
END;
$save_dni$ LANGUAGE plpgsql;
Espero se entienda.
Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rafaelma

No entiendo muy bien donde

No entiendo muy bien donde tienes el problema. Puedes tener un INSERT o un UPDATE en la funcion del trigger, que actualiza la otra tabla.

Algo asi (tendras que ajustar las sentencias INSERT y UPDATE que uses):

CREATE OR REPLACE FUNCTION save_dni() RETURNS TRIGGER AS $save_dni$
DECLARE
BEGIN
IF (TG_OP = 'INSERT') THEN
 INSERT INTO sueldos (documento) VALUES (NEW.documento); 
 RETURN NEW;   
ELSEIF (TG_OP = 'UPDATE') THEN
  UPDATE sueldos SET documento = NEW.documento WHERE bla, bla, bla;
  RETURN NEW;
END IF;
END;
$save_dni$ LANGUAGE plpgsql;

Mucha mas informacion sobre triggers en este articulo:
http://www.postgresql-es.org/node/301

--
Rafael Martinez
Webmaster

Enviar nuevo comentario

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><h2><pre>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Image CAPTCHA
Enter the characters shown in the image.