Re: Replicacion?

From: Pablo Marrero <pablo(dot)marrero(at)bancaqm(dot)com(dot)uy>
To: cbeltran <cbeltran(at)roldan(dot)net>
Cc: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>, AyudaPostgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Replicacion?
Date: 2004-09-09 12:33:07
Message-ID: 1094733186.27482.11.camel@badesa05.desarrollo.bancaqm.com.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

hola como estan, estuve con problemas en otro sistema.....
En poco tiempo voy a retomar este tema...

Muchas gracias por sus comentarios....

saludos pablo

El mié, 08-09-2004 a las 18:48, cbeltran escribió:
> Pablo
>
> Como vas con la replica?
>
> Con las indicaciones de Alvaro ya tenemos una nueva version (una sola
> funcion con un solo trigger por tabla en replica) asi:
>
> CREATE SEQUENCE tablas_replica_id_seq start 180000001 increment 1 maxvalue
> 999999999 minvalue 1 cache 1;
> CREATE TABLE tablas_replica (
> tablas_replica_id integer DEFAULT nextval('tablas_replica_id_seq'::text)
> NOT NULL,
> tabla_nombre_replica character(90) NOT NULL,
> CONSTRAINT pk_tablas_replica PRIMARY KEY (tablas_replica_id)
> );
>
> INSERT INTO tablas_replica (tablas_replica_id, tabla_nombre_replica) VALUES
> (180000001, 'terceros
> ');
>
> CREATE SEQUENCE control_replica_id_seq start 180000000000000001 increment 1
> maxvalue 999999999999999999 minvalue 1 cache 1 ;
> CREATE TABLE control_replica (
> control_replica_id bigint DEFAULT
> nextval('control_replica_id_seq'::text) NOT NULL,
> tablas_replica_id integer NOT NULL,
> linea_tabla_replica_id bigint NOT NULL,
> operacion character(6),
> CONSTRAINT pk_control_replica PRIMARY KEY (control_replica_id),
> CONSTRAINT fk_tablas_replica_id1 FOREIGN KEY (tablas_replica_id)
> REFERENCES tablas_replica(tablas_replica_id) ON UPDATE CASCADE ON DELETE
> CASCADE
> );
>
> CREATE FUNCTION "rp_terceros"() RETURNS TRIGGER AS '
> BEGIN
> IF TG_OP = ''DELETE'' THEN
> INSERT INTO control_replica (tablas_replica_id,
> linea_tabla_replica_id, operacion) VALUES (180000001, OLD.terceros_id,
> TG_OP);
> ELSE
> INSERT INTO control_replica (tablas_replica_id, linea_tabla_replica_id,
> operacion) VALUES (180000001, NEW.terceros_id, TG_OP);
> END IF;
> RETURN NEW;
> END;
> ' LANGUAGE 'plpgsql';
> CREATE TRIGGER rp_terceros BEFORE INSERT OR UPDATE OR DELETE ON terceros FOR
> EACH ROW EXECUTE PROCEDURE rp_terceros();
>
> Es decir la operacion (INSERT / UPDATE / DELETE) se toma directamente de
> TG_OP y por lo tanto cambio el tipo a character(6) y ademas en la funcion
> hubo que agregar un IF pues se debe especificar la linea OLD para DELETE y
> la linea NEW para INSERT y UPDATE.
>
>
> Carlos Beltran Villamizar
> Roldan SIA SA Colombia.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: ?Has buscado en los archivos de las listas de correo?
>
> http://archives.postgresql.org
--
A/C Pablo Marrero
Departamento de Desarrollo
Banca de Quinielas de Montevideo
Tel: 924-64-05 int 195-196
"Work like you don't need the money,
love like you've never been hurt,
and dance like no one is watching"
Satchel Paige

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message JimAlexandr 2004-09-09 15:36:25 Re: Postgresql sobre wind2000
Previous Message Andrea Reyes 2004-09-09 12:23:06 Postgresql sobre wind2000