DB_LINK
Publicado por Erika (3 intervenciones) el 08/03/2007 20:40:59
La funcion que tiene el codigo que se encuentra en la parte inferior es que base de datos pueda almacenar datos de forma local y simultaneamente en forma remota.
Para esto estoy haciendo uso de un trigger y, lo que quiero hacer es que mediante un dblink almacenar los datos de manera remota, el lenguaje del trigger es
plpgsql. Espero que alguen me pueda orientar acerca de como utilizar el dblink.
CREATE OR REPLACE FUNCTION COMBO () RETURNS TRIGGER AS
'
BEGIN
IF TG_OP=''INSERT'' THEN
-- Conectate con dblink, crea la coneccion
select dblink_connect ("hostaddr=127.0.0.1 port=5432 dbname=BD1 user=postgres password=aaaaa");
-- Usa la conexion
select dblink_exec("INSERT INTO T2 VALUES(NEW.ID,NEW.DESC,NEW.CANTIDAD)");
-- Cierra la conección
select dblink_disconnect();
RETURN NEW;
ELSEIF TG_OP=''DELETE'' THEN
--DELETE FROM T2 WHERE OLD.ID=T2.ID;
RETURN OLD;
ELSEIF TG_OP=''UPDATE'' THEN
--UPDATE T2 SET ID=NEW.ID, DESC=NEW.DESC, CANTIDAD=NEW.CANTIDAD WHERE OLD.ID=T2.ID;
RETURN NEW;
END IF;
END;
'LANGUAGE 'PLPGSQL';
CREATE TRIGGER T_COMBO BEFORE INSERT OR UPDATE OR DELETE ON DB2 FOR EACH ROW EXECUTE PROCEDURE COMBO();
Para esto estoy haciendo uso de un trigger y, lo que quiero hacer es que mediante un dblink almacenar los datos de manera remota, el lenguaje del trigger es
plpgsql. Espero que alguen me pueda orientar acerca de como utilizar el dblink.
CREATE OR REPLACE FUNCTION COMBO () RETURNS TRIGGER AS
'
BEGIN
IF TG_OP=''INSERT'' THEN
-- Conectate con dblink, crea la coneccion
select dblink_connect ("hostaddr=127.0.0.1 port=5432 dbname=BD1 user=postgres password=aaaaa");
-- Usa la conexion
select dblink_exec("INSERT INTO T2 VALUES(NEW.ID,NEW.DESC,NEW.CANTIDAD)");
-- Cierra la conección
select dblink_disconnect();
RETURN NEW;
ELSEIF TG_OP=''DELETE'' THEN
--DELETE FROM T2 WHERE OLD.ID=T2.ID;
RETURN OLD;
ELSEIF TG_OP=''UPDATE'' THEN
--UPDATE T2 SET ID=NEW.ID, DESC=NEW.DESC, CANTIDAD=NEW.CANTIDAD WHERE OLD.ID=T2.ID;
RETURN NEW;
END IF;
END;
'LANGUAGE 'PLPGSQL';
CREATE TRIGGER T_COMBO BEFORE INSERT OR UPDATE OR DELETE ON DB2 FOR EACH ROW EXECUTE PROCEDURE COMBO();
Valora esta pregunta


0