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.
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
              http://archives.postgresql.org/pgsql-es-ayuda

Responder a