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.
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 |