Oracle - on delete cascade

 
Vista:

on delete cascade

Publicado por soraya (10 intervenciones) el 31/01/2006 16:11:28
al crear tablas cuando es necesario poner on delete cascade
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:on delete cascade

Publicado por JSL (186 intervenciones) el 31/01/2006 20:51:18
Usando CONSTRAINTS:

ON DELETE CASCADE

allows deletion of referenced key values in the parent table that have dependent rows in the child table and causes Oracle to automatically delete dependent rows from the child table to maintain referential integrity.

Maintaining Referential Integrity with ON DELETE CASCADE

If you use the ON DELETE CASCADE option, Oracle permits deletions of referenced key values in the parent table and automatically deletes dependent rows in the child table to maintain referential integrity.
Example

This example creates the EMP table, defines and enables the referential integrity constraint FK_DEPTNO, and uses the ON DELETE CASCADE option:



CREATE TABLE emp
(empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2) CONSTRAINT fk_deptno
REFERENCES dept(deptno)
ON DELETE CASCADE );

Because of the ON DELETE CASCADE option, Oracle cascades any deletion of a DEPTNO value in the DEPT table to the DEPTNO values of its dependent rows of the EMP table. For example, if Department 20 is deleted from the DEPT table, Oracle deletes the department's employees from the EMP table.
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:on delete cascade

Publicado por tuozzo (66 intervenciones) el 01/02/2006 12:03:27
Que tal soraya, la cuestion del ondelete cascade es la siguiente, cuando tienes una tabla que tiene integridad referencial con otras tablas, o sea, que tienes relaciones de integridad con otras tablas como en el caso de los constraints, el ondelete cascade le dice a oracle que cuando quieras eliminar un registro de esa tabla el se encarge de eliminar los registros de las demas tablas que son hijos de este. Es un poco dificil de explicar.

Si tu tienes una tabla A que entre uno de sus campos tiene el campo A1 y este campo A1 hace referencia con un campo de la tabla B llamado B1 si intentas eliminar una tupla de la tabla A oracle no lo permite porque existen registros en la tabla B que tienen referencia a este. La opcion ondelete cascade lo que hace es que al eliminar la tupla de la tabla A (padre) se eliminan automaticamente los registros de la tabla B.

Te recomiendo que profundices mas en esta area, ya que una de las caracteristicas mas fuertes de oracle son los contraints, ya que te premite que el mismo oracle realice todas las validaciones de datos pertinentes cuando tienes integridad referencial.

Espero haberte ayudado.
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