Oracle - como borrar en cascada

 
Vista:

como borrar en cascada

Publicado por Isack (14 intervenciones) el 18/05/2005 23:53:45
hola a todos miren tengo un problema ya que cuando tengo dos tablas una tabla A y otra tabla B y las dos tiene el mismo nombre de campo esto para poder relacionarlas entre ellas (idkey) en la tabla A es la padre y el campo idkey es declarada com oprimary key y en la sugunda tabla hija tabla B no esta como primary key y a la hora de borrar un dato de la tabla A se tiene que borrar tambien los datos del campo de la tabla B pero no lo hace y me marca un error en la relacion de las dos tablas
como ven se los agradeseria si me ayudan
nota es oracle 9i
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:como borrar en cascada

Publicado por mery (46 intervenciones) el 19/05/2005 17:04:50
Hola por lo que dices en tu segunda tabla no haces referencia al primary key de tu tabla padre, lo que tienes que hacer es declarar en la tabla hija un foregn key que haga referencia al primary key de tu tabla padre asi estaran relacionada y lugo buendo la borras le agregas la palababra cascade, asi
ALTER TABLE B ADD CONSTRAINT FK_IDKEY
FOREIGN KEY (IDKEY)
REFERENCES A (IDKEY)

DELETE FROM A CASCADE;
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:como borrar en cascada

Publicado por trazom (28 intervenciones) el 19/05/2005 20:24:48
NO.
La sentencia DELETE FROM tabla CASCADE no existe.
La que existe es DROP TABLE tabla CASCADE CONSTRAINTS, pero no borra los registros de la tabla hija sino la constraint de foreign key.
Para hacer que los registros de la tabla hija se borren automaticamente cuando se eliminan los del padre, hay que declarar la FK de la siguiente manera:

ALTER TABLE B ADD CONSTRAINT FK_IDKEY FOREIGN KEY (IDKEY)
REFERENCES A (IDKEY) ON DELETE CASCADE.

Luego en la tabla principal elimina como siempre:

DELETE FROM tabla .....
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:como borrar en cascada

Publicado por Isack (14 intervenciones) el 21/05/2005 01:24:17
SE LOS AGRADESCO
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:como borrar en cascada

Publicado por davidr (8 intervenciones) el 09/08/2005 09:03:22
Hola trazom,

he estado buscando en el foro cómo borrar en cascada y he encontrado vuestras notas al respecto así que si no te importa te hago una pregunta sobre borrado en cascada a ver si puedes solucionarme la duda.

Al utilizar la instrucción que comentas da el error ORA-02275, seguramente porque la relación entre las tablas de cabecera (PK) y líneas ya existe (FK).

Si se te ocurre cómo declarar el borrado en cascada te lo agradecería.

Gracias de antemano.
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