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