Re: pk con valores duplicados

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: pk con valores duplicados
Date: 2009-05-20 21:23:54
Message-ID: 4A1474EA.4040607@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera escribió:
> Oswaldo Hernández escribió:
>
>> Viendo una de las tablas que provoca el error veo que efectivamente tiene
>> valores duplicados en un campo con indice unique:
>
>
>> Evidentemente hay que eliminar uno de los registros, pero me surgen la
>> siguientes dudas sobre como hacerlo:
>
> Lo más fácil es usar el ctid:
>
> select ctid, cod_clientecentral from ...

OK, funciona bien y no esta duplicado como el OID.

> Luego DELETE FROM ... WHERE ctid = 'valor a borrar'
>
>> . La columna clientecentral esta referenciada con fk desde otras tablas,
>> si elimino uno de los registros y aunque quede el otro con los mismos
>> valores ¿se dispararán la fk y se eliminarán los registros referenciados?
>
> No, es decir sí pero van a ver el otro (¿no tienes FKs CASCADE verdad?)

Las que he analizado no tienen FKs CASCADE, pero no las he visto todas, son 6 o 7 tablas con duplicados.

>
>> . pg_dump vuelca ambos registros. ¿Seria mas conveniente eliminar el
>> registro sobrante en el dump y restaurar la base de datos sin los valores
>> duplicados?
>
> No necesariamente ...
>

Mañana hare las pruebas (aqui ya es tarde) y enviaré el resultado.

Gracias.

--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Angel 2009-05-20 21:25:45 Formato en campo
Previous Message Alvaro Herrera 2009-05-20 21:06:57 Re: pk con valores duplicados