Bueno, tal parece que tiene que ver con la definición de la PK... Estoy haciendo algunas pruebas, ya pasé... sigo con mi agite, y comento
El 28 de octubre de 2010 11:26, Cesar A <cesar.carbon...@gmail.com>escribió: > Saludos > > Tengo que implementar un sistema de replicación. Aún estamos definiendo, > pero en principio va 1 principal en la sede, 2 esclavos en la sede (comor > espaldos), 2 en 2 sucursales (1 en cada una). > > He ido mirando y probando a partir de un material de Alvaro sobre Slony, y > la documentación oficial. Hasta ahora, probé con 2 tablas y funcionó, pero > cuando metí otra me tiró error. El scritp > sh local2.sh : > #!/bin/sh > slonik <<_EOF_ > > cluster name = encuentro; > node 1 admin conninfo = 'dbname=sir user=slony password=slony'; > node 2 admin conninfo = 'host=192.168.0.12 dbname=sir user=slony > password=slony'; > > create set (id=1, origin=1, comment='tablas del Encuentro Código > Político'); > set add table (set id=1, origin=1, id=1, full qualified > name='public.region'); > set add sequence (set id=1, origin=1, id=1, full qualified > name='public.region_reg_001_seq'); > > set add table (set id=1, origin=1, id=2, full qualified > name='public.estado'); > set add sequence (set id=1, origin=1, id=2, full qualified > name='public.estado_est_001_seq'); > > set add table (set id=1, origin=1, id=3, full qualified > name='public.municipio'); > set add sequence (set id=1, origin=1, id=3, full qualified > name='public.municipio_id_seq'); > > echo 'Se ha creado el set 1 con la tabla de Region y Estado'; > > subscribe set (id=1, provider=1, receiver=2, forward=yes); > echo 'El nodo 2 esta suscrito al set 1, proveedor es nodo 1'; > > _EOF_ > > El error: > <stdin>:6: PGRES_FATAL_ERROR select "_encuentro".storeSet(1, 'tablas del > Encuentro Código Político'); - ERROR: llave duplicada viola restricción de > unicidad «sl_set-pkey» > CONTEXT: sentencia SQL: «insert into "_encuentro".sl_set (set_id, > set_origin, set_comment) values ( $1 , $2 , $3 )» > PL/pgSQL function "storeset" line 13 at SQL statement > > Con las tablas region y estado, funciona perfecto! al meter municipios me > salta el erro. Sin emabrgo, al tabla municipios tiene tan sólo 77 registros. > He hecho una consulta y no hay valores nulos ni duplicados, de hecho, la > estructura: > CREATE TABLE municipio ( > reg_001 character varying(2) NOT NULL, > est_001 character varying(2) NOT NULL, > mun_001 character varying(2) NOT NULL, > mun_002 character varying(35) NOT NULL, > id integer NOT NULL > ); > > > ALTER TABLE public.municipio OWNER TO carbonara; > > CREATE SEQUENCE municipio_id_seq > INCREMENT BY 1 > NO MAXVALUE > NO MINVALUE > CACHE 1; > > ALTER TABLE public.municipio_id_seq OWNER TO carbonara; > > ALTER SEQUENCE municipio_id_seq OWNED BY municipio.id; > > ALTER TABLE municipio ALTER COLUMN id SET DEFAULT > nextval('municipio_id_seq'::regclass); > > ALTER TABLE ONLY municipio > ADD CONSTRAINT municipio_pkey PRIMARY KEY (id); > > ALTER TABLE ONLY municipio > ADD CONSTRAINT municipio_ukey UNIQUE (reg_001, est_001, mun_001); > > ALTER TABLE ONLY municipio > ADD CONSTRAINT estado_fkey FOREIGN KEY (reg_001, est_001) REFERENCES > estado(reg_001, est_001) ON UPDATE CASCADE ON DELETE RESTRICT; > > Algún comentario? > -- > -- > Sí no eres parte de la solución... eres parte del problema. > Les Luthiers > -- > ... y no dejes de leer: > Netiqueta: Conjunto de reglas que regulan la conducta del usuario en > internet > http://es.wikibooks.org/wiki/Netiquette > -- > Cesar A. Carbonara R. > C.I. Nº V.11.952.572 > -- > Usuario Linux 377997 > www.gulmer.org.ve > > -- -- Sí no eres parte de la solución... eres parte del problema. Les Luthiers -- ... y no dejes de leer: Netiqueta: Conjunto de reglas que regulan la conducta del usuario en internet http://es.wikibooks.org/wiki/Netiquette -- Cesar A. Carbonara R. C.I. Nº V.11.952.572 -- Usuario Linux 377997 www.gulmer.org.ve