Tengo 2 tablas similares, con algunos campos iguales, en dos bases de datos
diferentes, necesito que esten sincronizadas, es decir que si realizo algun
cambio en la tabla A de la BD A, estos cambios tambien se realicen en la
Tabla B de la BD B, para esto cree triggers After Update en ambas tablas, y
su procedimiento es el siguiente:

CREATE OR REPLACE FUNCTION t_usuario()
  RETURNS trigger AS
$BODY$
DECLARE
BEGIN
 UPDATE usuario_web_f set password=new.clave where username=new.nombre;
 RETURN new;
EXCEPTION    WHEN OTHERS THEN RAISE NOTICE 'SQL ERROR: %', SQLERRM;
END;
$BODY$

donde usuario_web_f es una tabla foranea que hace referencia a otra base de
datos, probe los triggers por separado y funcionan correctamente, el
problema surge cuando uso cada trigger en su tabla correspondiente, me sale
el siguiente error:

NOTICE: SQL ERROR: la ejecución alcanzó el fin del procedimiento disparador
sin encontrar RETURN
ERROR:  la ejecución alcanzó el fin del procedimiento disparador sin
encontrar RETURN
CONTEXTO:  función PL/pgSQL t_usuario()

Quisiera saber que es lo que pasa y si tal vez debo usar otra opción para
lograr mantener sincronizadas mis tablas. Muchas gracias de antemano!


-- 
Saludos
Aracelly

Responder a