Gente tengo que resolver el siguiente inconveniente: hacer
un script que borre datos de una base, pero de la forma
que les explico a continuación. También un breve ejemplo
como para que puedan entender mejor a que me refiero. Si
alguien me puede aunque sea orientar por donde debo
empezar me darían una mano enorme. Desde ya muchas gracias.
Pd: Al final les copié la secuencia lógica que yo creo que
debería seguir el script. Se me ocurre que quizas sea
necesario crear tablas temporarias.
- Borrado de información de N divisiones (1 o más). Las
divisiones se ingresarían manualmente en el script.
-Borrado de las divisiones de la tabla SIST_DIVI
Para ello debe contemplar
· La detección de filas a borrar a través de la
detección automática de tablas hijas de SIST_DIVI y el
armado de sentencia SQL para el borrado a través de la
columna FK. Esto debe realizarse teniendo en cuenta que
la FK de división se propaga en varios niveles.
Ejemplo:
1. Tabla CPAG_CDPR (FK CDPR_DIVISION_CDPR)
2. La PK de esta a su vez se propaga en CPAG_RCCP (FK
RCCP_DIVISION_CDPR, RCCP_TIPO_CDPR y RCCP_NUMERO_CDPR)
3. Esta a su vez en CPAG_CTEP, etc.
· Tablas hijas sin integridad: estas se borran
directamente con el atributo división.
Estas son: CONT_AUAS - Auditoria de asientos contables
CCOB_AUCB - Auditoria de comprobantes de clientes
COMP_AUCM - Auditoria de comprobantes de compras
ACCT_AUAC - Auditoria de comprobantes de contratos y
control de tiempos PROD_AUPD - Auditoria de comprobantes
de producción
CPAG_AUCP - Auditoria de comprobantes de proveedores
STOC_AUCS - Auditoria de comprobantes de stock
VENT_AUCV - Auditoria de comprobantes de ventas
TESO_AUMB - Auditoria de movimientos bancarios·
La secuencia lógica es:
a) Borrado de integridad referencial
b) Detección de tablas y armado de sentencias
c) Borrado de filas
Leer las respuestas