Oracle - Borrar en cascada

 
Vista:

Borrar en cascada

Publicado por davidr (8 intervenciones) el 08/08/2005 18:14:01
Hola a todos,

alguien me podría decir cómo puedo borrar en cascada cuando tengo dos tablas relacionadas a través de una FK. Es decir, tengo una tabla cabecera y una tabla de líneas de cabecera y quiero que al borrar un registro de la cabecera se borren sus líneas asociadas.
¿Tengo que modificar la declaración de las tablas para indicarle que al borrar los haga en cascada?

Gracias de antemano. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Borrar en cascada

Publicado por trazom (28 intervenciones) el 08/08/2005 19:28:09
En la definicion de tu tabla "cabecera" debes colocar la palabra ON DELETE CASCADE a continuacion de la definicion de la PRIMARY KEY.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar en cascada

Publicado por davidr (8 intervenciones) el 09/08/2005 12:00:18
Gracias por contestar trazom,

hace un rato he visto que contestabas a la misma pregunta en otra nota y a su vez te he preguntado sin darme cuenta.

El problema es cuando se tiene creada la relación PK-FK entre la tabla cabecera y la tabla de líneas. Con lo cual da un error al modificar la tabla. con ON DELETE CASCADE.

¿Sabes cómo puedo indicar que al borrar se haga en cascada, cuando ya tengo creada la relación entre ambas tablas?. ¿Tengo que borrar previamente la relación entre ambas tablas para después cambiar la definición de la tabla con ON DELETE CASCADE, o se puede modificar la definición de otro modo?.

Gracias por la ayuda y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar en cascada

Publicado por trazom (28 intervenciones) el 09/08/2005 14:52:56
Antes que nada, te pido disculpas por mi respuesta anterior. Esta totalmente equivocada. No me di cuenta pero la conteste exactamente al reves, la clausula ON DELETE va en la tabla que tiene la FOREIGN KEY, o sea en lo que tu llamas "lineas de cabecera"

Respecto a tu otra pregunta, lamentablemente no tienes otra solucion que eliminar la constraint y recrearla con ON DELETE CASCADE.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar en cascada

Publicado por davidr (8 intervenciones) el 09/08/2005 15:30:29
Muchas gracias, me has sacado de la duda que tenía.

Saludos.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar