![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Evitar Triggers Al Vaciar Tabla [Firebird]
Hola. Gracias de Antemano a todos
Ahora vamos al meollo, tengo una base de datos con 436 tablas , 956 procedures, 1334 Triggers etc etc... el caso es que es grandiiiiisima, el problema viene ahora, TENGO QUE VACIARLA ![]() ![]() |
#2
|
||||
|
||||
Primero haz una copia de la base de datos, vía copiar y pegar y empieza a probar con ella.
Consiste en ver las tablas del sistema y juguetear un poco con ella, es delicado, por eso debes hacer una copia antes. Suponiendo que usas Ib Expert: (debes activa la opción de "ver tablas de sistema") Si en concreto miras la tabla: RDB$TRIGGERS y vas a la pestaña Data, verás el contenido de la misma. Ordena por la columna RDB$SYSTEM_FLAG, observarás que si el valor es <null> se trata de un trigger creado por tí, además tienes la columna RDB$TRIGGER_INACTIVE que siendo igual a cero, estará activo. Lo que se trataría es acceder a esas tablas del sistema, extraer la información que se va a modificar. Modificar la información que contiene, y al final restaurar la configuración inicial. Lo de extraer la información, es que, por ejemplo, una vez modificado la columna RDB$TRIGGER_INACTIVE y establecerlo a null, (para desactivar el trigger), hecho esto, ya no sabemos qué triggers debemos volver a activar, por eso debemos guardar al menos los nombres de los disparadores para restaurar la configuración inicial. El problema es identificar qué valores tiene cada uno y cual modificar, de ahí que hagas una copia, realices todos los cambios, restaurar la configuración inicial y comprobar que realmente ha funcionado (fácil... nadie ha dicho que lo sea). Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Hola LuCkY_007
si lo que quieres es tener la base de datos totalmente vacia de datos una solución es utilizar alguna aplicacion de gestión de Firebird, (IBExpert, SQLHammer por ejemplo) y obtener los metadatos de la base de datos. Desde IBExpert es así: Tools->Extract Metadata, luego lo ejecutas y tienes la base limpia. Saludos TJose |
#4
|
|||
|
|||
Hola LuCkY_007
Perdón, parece que te contesté cualquiera en el post anterior, me confundí con esta parte de la oración Cita:
Has probado de desactivando los triggers? Saludos TJose |
#5
|
||||
|
||||
TJose, y digo yo, ¿qué diferencia hay entre vaciar una base de datos, y crear una nueva, con idéntica construcción, pero sin datos?
Creo que tu solución es perfecta y muy simple de ejecutar. Incluso tendría los generadores en el último valor usado. Si se quieren reiniciar a cero, es tan solo un pequeño script. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 09-03-2007 a las 01:25:16. |
#6
|
|||
|
|||
Hola Lepe
es que no me queda en claro si se trata de una tabla en particular o toda la base de datos Saludos TJose |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Vaciar tabla de base Paradox | zugazua2001 | Conexión con bases de datos | 3 | 29-05-2007 01:32:42 |
erroro al vaciar una tabla | jzginez | Firebird e Interbase | 2 | 18-11-2005 16:31:18 |
Vaciar tabla ADO | Daltor | Conexión con bases de datos | 3 | 21-05-2005 18:32:03 |
vaciar una tabla | arc22 | Conexión con bases de datos | 4 | 18-06-2004 16:28:18 |
velocidad al vaciar una tabla??? | aram2r | Conexión con bases de datos | 4 | 09-03-2004 17:56:37 |
![]() |
|