Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Error en restore fichero interbase (https://www.clubdelphi.com/foros/showthread.php?t=5309)

EL WINDSURFISTA 17-11-2003 12:23:19

Error en restore fichero interbase
 
Realizando el restore de un fichero GBK Interbase, al final cuando crea los índices me da el siguiente error "violation of FOREIGN KEY ...', es decir, que hay varios registros con la misma clave primaria. Lo soluciono desactivando los índices en el restore, busco los registros duplicados y los borro. Repito el proceso de backup, restore y solucionado. Pero cuando el fichero es grande 500 MB ó 1 Gb, el tema se complica. ¿Hay otra forma más fácil de solucionar el problema?.

Gracias.

JMOTON 17-11-2003 13:11:07

YO TENGO EL MISMO PROBLEMA. La forma que tengo de solucionarlo es:

Compruebo si hay registros duplicados antes de hacer el Backup:

select CODDIARIO, NUM_ASIENTO, count(*) cuantos
from ASIENTOS
group by CODDIARIO, NUM_ASIENTO
PLAN SORT (SORT ((ASIENTOS NATURAL)))
order by 3 descending.
...
los que tengan más de 2 en el campo cuantos ==> los borro.

como son registros que puedo recalcular (es la cabecera de algunas lineas) , los borro, ya que no se cual es el bueno, y creo un único registro.

Esto ha sido una solución chapuza, para no tener que estar restaurando sin activar indices, eliminar duplicidades y depués activar los indices. Por supuesto esto ocurre con poca frecuencia, porque si no hubiera buscado otras soluciones.

Pero la pregunta es porqué ocurre esta duplicidad. En mi caso creo que es porque la clave primaria la forman 2 campos string. Creo que la clave primaria debería de se un campo entero, y si luego tenemos campos que no se pueden repetir, hacerlo con índices únicos. PRUEBA ESTE TEMA POR SI ES TU CASO.

Saludos.

kinobi 17-11-2003 14:49:51

Hola,

Cita:

EL WINDSURFISTA comentó:
Realizando el restore de un fichero GBK Interbase, al final cuando crea los índices me da el siguiente error "violation of FOREIGN KEY ...', es decir, que hay varios registros con la misma clave primaria. [...]
pero ... si hubiese varios registros con la misma clave primaria el error debería ser "violation of PRIMARY KEY ..." ¿no?

Saludos.


La franja horaria es GMT +2. Ahora son las 04:03:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi