15. Restricciones e Integridad Referencial en MySQL

La integridad referencial es un concepto en las bases de datos que, como su nombre dice, trata de que la integridad de los datos no se corrompa.

Veamos un ejm para entender este concepto. Vamos a borrar registros de la tabla movies de nuestra base de datos.

DELETE FROM movies WHERE status = 1;

Borrará los registros con ese estatus. Sobre esta tabla (movies) sí se pueden borrar registros sin problema. MySQL permite eliminar los registros existentes en la tabla movies.

Ahora vamos a crear una sentencia SQL que intente eliminar registros en la tabla status.

Ejm

DELETE FROM status WHERE status_id = 1;

En este caso nos ha permitido eliminar el registro status_id = 1 porque ya no hay registros asociados en la tabla dependiente. Si intentamos borrar un registro de esta tabla que tenga registros asociados en la tabla dependiente, MySQL no permitirá eliminar dicho registro.

Ejm

DELETE FROM status WHERE status_id = 2;
/*
No permitirá eliminar este registro mientras haya películas en la tabla movies
asociadas a este status
*/

A todo esto se le conoce con el nombre de Integridad referencial.

Cuando, por ejm, actualizamos los valores del registro de la tabla status, en automático se actualizan dichos valores en la tabla movies (la tabla dependiente).

Scroll al inicio