Re: ayuda triguer

From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
To: "fulanito detal" <fulanito000(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ayuda triguer
Date: 2007-09-26 16:02:18
Message-ID: 95335e4e0709260902m3070c9f4ye00b35c4bff27b0a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 26/09/07, fulanito detal <fulanito000(at)hotmail(dot)com> escribió:
> buenas, mecesito hacer un triguer que cuando ingreso un registro en una base
> de datos , me guarde el registro en una tabla de otra base de datos en otro
> servidor
> Esto se puede hacer? como?
> si no se puede, me largan alguna idea

Mira el paquete dblink. Hay algunos ejemplos en la lista, quizás haciendo
una búsqueda encuentres ejemplos de lo que buscas.

De hecho, reusando una función que había utilizado para un asunto de
dblink_exec,
te paso un ejemplo:

--La tabla:
CREATE TABLE t1(a1 int, a2 text);

-- La función y el trigger, para insertar en la BD "copia"
CREATE OR REPLACE FUNCTION insertar()
RETURNS "trigger" AS
$BODY$
begin
PERFORM dblink_exec('hostaddr=127.0.0.1 port=5432 dbname=copia
user=postgres password=XXXX',
'insert into t1(a1,a2) values ('
||new.a1
||','''
||new.a2
||''')' );
return null; -- se ignora en el trigger de tipo "after"
end
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

CREATE TRIGGER t_inserta
AFTER INSERT
ON t1
FOR EACH ROW
EXECUTE PROCEDURE insertar();

Y ya estaría.

Si lo quieres hacer para TODAS las tablas, considera usar replicación
con Slony I o similares.

Saludos
--
Miguel Rodríguez Penabad

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2007-09-26 16:37:00 Re: Ayuda con Function
Previous Message Miguel Rodríguez Penabad 2007-09-26 15:49:48 Re: Ayuda con Function