Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2019
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
"limpiar" registros de rdb$relation_constraints por daño en base de datos

Que tal

Tengo una base de datos que se dañó y al recuperar el único respaldo disponible, este se recupera sin procedures, triggers ni constraints.

Utilizando la opción "database comparer" de ibexpert, puedo obtener el código de los objetos que "desaparecieron".

Con los procedures y los triggers, no tuve ningún problema para volverlos a poner, pero con los constraints de tipo "check", me marca error:

violation of PRIMARY or UNIQUE KEY constraint "RDB$INDEX_12" on table "RDB$RELATION_CONSTRAINTS".
Problematic key value is ("RDB$CONSTRAINT_NAME" = 'ACTIVOS_FIJOS_ESTATUS').

Es decir, en la tabla de sistema "RDB$RELATION_CONSTRAINTS" todavía existe el registro, aunque en la tabla a la que pertenece, no existe.

Ya hice un respaldo, mend, sweep, validation y según yo, ya hice todo lo que tengo disponible para "limpiar" la tabla de sistema.

Y como nada de eso me quita esos registros, intenté hacerlo por sql, pero la instrucción "delete" no está permitida para tablas de sistema.

Entonces, la constraint ya no existe en la tabla, pero sigue registrada en la tabla de sistema.

¿qué puedo hacer o cómo podría eliminar esos registros de la tabla "RDB$RELATION_CONSTRAINTS"?

Saludos
__________________

Responder Con Cita
  #2  
Antiguo 12-12-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No queda muy claro el proceso que has hecho y no podemos probar, tampoco se entiende que restaures una DB y venga sin triggers, sps, etc.
Prueba a desactivar índices antes de restaurar esa tabla, luego lo activas, y si antes ves que hay alguna clave repetida la borras y entonces lo activas.
Responder Con Cita
  #3  
Antiguo 12-12-2019
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No queda muy claro el proceso que has hecho y no podemos probar, tampoco se entiende que restaures una DB y venga sin triggers, sps, etc.
Prueba a desactivar índices antes de restaurar esa tabla, luego lo activas, y si antes ves que hay alguna clave repetida la borras y entonces lo activas.
Pues así tal cual, ja, al restaurar la base de datos no tiene más que las tablas. Supongo que es porque hicieron el respaldo cuando la base de datos tenía algún daño o algún problema.

Ya probé desactivar y activar los índices, pero el problema no está en los índices, ni en las tablas de la base de datos. El problema es que en las tablas de sistema, sigue el registro de un "constraint" que no existe en la tabla que debería tenerlo.



Mi tabla sin check
https://drive.google.com/open?id=1gY...qGSL0XS0Vyki8d


Pero el registro sí existe en la tabla del sistema rdb$relation_constraints, pero no se permite borrar:
https://drive.google.com/open?id=1n6...nJwPQpGShHQ3ls
__________________

Responder Con Cita
  #4  
Antiguo 12-12-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No tienes el SQL de creacion de la estructura?

En fin, yo solo exportaria los datos y crearia la estructura aparte en una nueva y luego importo los datos.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 12-12-2019
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
No tienes el SQL de creacion de la estructura?

En fin, yo solo exportaria los datos y crearia la estructura aparte en una nueva y luego importo los datos.
mmmm...sería exportar casi 20gb de poco más de mil tablas. Y el problema está que no puedo agregar 180 checks. Prefiero seguir buscando la opción de poder insertar el check que me falta y si de plano no encuentro como, tendré que exportar información.

Si te refieres a crear una tabla nueva, exporta la información, luego borrar la tabla vieja y finalmente renombrar la nueva, me marca el mismo error de que ya existe en la tabla de sistema
__________________

Responder Con Cita
  #6  
Antiguo 12-12-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo más cómodo, seguro y fiable es hacer lo que comenta mamcx, creas la estructura de la DB con el script que uses y luego importas los datos, por ejemplo con ibpump.
Responder Con Cita
  #7  
Antiguo 12-12-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Y seguro a la final es menos tiempo que intentar arreglar un archivo corrupto. Ademas que 20GB es poquito*

* Incluso en un disco de 5400 RPM deberia tomar menos de 1 hora toda la vuelta....
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recuperar base de datos firebird eliminada con el comando "DROP" Luis F. Orjuela Firebird e Interbase 4 18-02-2011 15:12:23
"Clonar" estructura de base de datos Flecha MS SQL Server 2 01-07-2010 11:11:21
"Mejor" base de datos que MySQL... Ñuño Martínez Conexión con bases de datos 23 08-03-2010 15:59:39
Búsqueda "incremental" en una base de datos loquillo3 Conexión con bases de datos 9 08-11-2007 18:07:02
¿como Puedo Cancelar La Inserción De Los Últimos Registros "insertados" OscarBravo Tablas planas 1 23-07-2007 19:26:35


La franja horaria es GMT +2. Ahora son las 13:32:07.


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
Copyright 1996-2007 Club Delphi