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 05-08-2004
squenda squenda is offline
No confirmado
 
Registrado: dic 2003
Ubicación: México D.F.
Posts: 61
Poder: 0
squenda Va por buen camino
eliminar en cascada con intebase

hola a todos, mi problema es el sig:

tengo una base de datos para medicos, en donde el paciente es la tabla que utilizo para casi todo, por lo tanto la relaciono con varias tablas, el problema es que cuando quiero eliminar al paciente porque se dio de alta o murió, tengo que ir eliminando a todos los hijos y nietos de ese registro lo cual es una lata, si alguien pudiera ayudarme a resolver esto, he oido que se puede eliminar en cascada y me gustaria saber como se hace, actualmente utilizo solamente querys y trabajo con interbase 6. gracias.
Responder Con Cita
  #2  
Antiguo 06-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Wop!

Existen varias técnicas para conseguir lo que quieres. Una que te serviria con cualquier SGBD serio, es programar triggers en la tabla maestra.
Lo que te permite IB/Firebird es programar este comportamiento de manera declarativa. Para ello tienes que indicarlo al crear la foreign key en el detalle. No recuerdo exactamente la sintaxis, pero esencialmente consiste en añadir a la sentecia que crea la clave la opción "ON DELETE CASCADE". Si permites que se cambien los campos clave de la tabla maestra, tambien te puede interesar la opción "ON UPDATE CASCADE".
__________________
E pur si muove
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


La franja horaria es GMT +2. Ahora son las 08:05:38.


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