Cuando se elimina o modifica una fila en una tabla muchas veces puede afectar el rendimiento de nuestra base de datos porque dicho valor era referenciado en otra tabla, para manejar dicha situación vamos a hacer uso del
update y del
delete al momento de hacer referencias, un ejemplo es el siguiente:
create table EMPLEADO
(
id_empleado varchar(8),
constraint empleado_fk_id_empleado foreign key (id_empleado) references PERSONA(dni) on update cascade on delete cascade
);
Tenemos una tabla llamada: "
EMPLEADO", en la cuál hay un campo que hace referencia al campo de otra tabla llamada: "
PERSONA", y le indicamos que si el campo "
dni" en "
PERSONA" es modificado o eliminado, también realice dicha acción en la tabla "
EMPLEADO". Existen diversas restricciones, que son las siguientes:
Nombre |
Descripción |
RESTRICT |
Esta opción impide eliminar o modificar filas en la tabla referenciada si existen filas con el mismo valor de clave foránea. |
CASCADE |
Borra o modifica una clave en una fila en la tabla referenciada con un valor determinado de clave, implica borrar las filas con el mismo valor de clave foránea o modificar los valores de esas claves foráneas. |
SET NULL |
Borra o modifica una clave en una fila en la tabla referenciada con un valor determinado de clave, implica asignar el valor NULL a las claves foráneas con el mismo valor. |
NO ACTION |
Las claves foráneas no se modifican, ni se eliminan filas en la tabla que las contiene. |
SET DEFAULT |
Borrar o modifica una clave en una fila en la tabla referenciada con un valor determinado implica asignar el valor por defecto a las claves foráneas con el mismo valor |
0 comentarios:
Publicar un comentario