Restricciones de integridad referencial en MySQL

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