From: | Linos <info(at)linos(dot)es> |
---|---|
To: | Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | problema orden comprobación integridad |
Date: | 2008-10-02 21:20:54 |
Message-ID: | 48E53B36.9090303@linos.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, les explico mi problema, uso postgresql 8.3.3 con una base de datos en
UTF8, el esquema de la tabla es esta:
CREATE TABLE bulto_cabecera
(
id_documento integer NOT NULL,
bulto_id integer NOT NULL,
numero_bulto_documento integer NOT NULL,
time_stamp timestamp with time zone DEFAULT now(),
id_usuario integer NOT NULL,
completo boolean NOT NULL,
tipo_origen character varying(32) NOT NULL,
CONSTRAINT albaran_salida_bultos_cab_pkey PRIMARY KEY (bulto_id),
CONSTRAINT bulto_cabecera_id_documento_key UNIQUE (id_documento,
numero_bulto_documento)
)
WITH (OIDS=FALSE);
ALTER TABLE bulto_cabecera OWNER TO skuda;
cuando intento insertar una fila ya existente no siempre me da el error sobre la
clave primaria si no q a veces salta el indice único, fijense por ejemplo.
skuda=# INSERT INTO bulto_cabecera(id_documento, bulto_id,
numero_bulto_documento, time_stamp, id_usuario, completo, tipo_origen) VALUES
('2000244341'::integer, '2000244343'::integer, '2'::integer, 'now()'::timestamp
with time zone, '2102'::integer, FALSE::boolean, 'ALBARAN_SALIDA'::text)
skuda-# ;
ERROR: duplicate key value violates unique constraint
"albaran_salida_bultos_cab_pkey"
skuda=# \q
skuda(at)skuda ~/temporal/ficheros_sql $ psql -d skuda
Welcome to psql 8.3.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
skuda=# INSERT INTO skuda.bulto_cabecera(id_documento, bulto_id,
numero_bulto_documento, time_stamp, id_usuario, completo, tipo_origen) VALUES
('2000244341'::integer, '200024434'::integer, '2'::integer, 'now()'::timestamp
with time zone, '2102'::integer, FALSE::boolean, 'ALBARAN_SALIDA'::text);
ERROR: duplicate key value violates unique constraint
"bulto_cabecera_id_documento_key"
La verdad es q normalmente no me importaría (una fila no valida es mala sea el
motivo q sea) pero el problema es q la solución para la replicación que estoy
usando se basa en un sistema de callback si el registro ya existe que lo pasa a
un update y claro se base en error de clave primaria el callback, como aquí el
error es un indice único me bloquea los canales de replicacion con un error, por
que sucede esto? puedo hacer q siempre salte el error sobre la clave primaria
sin borrar el indice único?
Gracias y un saludo,
Miguel Angel.
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2008-10-02 21:29:20 | Re: ATOMICIDAD ante la perdida de coneccion |
Previous Message | Jenaro Centeno Gómez | 2008-10-02 21:16:36 | Re: ATOMICIDAD ante la perdida de coneccion |