Cómo eliminar relaciones entre tablas en MySQL por consola

Mysql

Cuando trabajamos con bases de datos relacionales como MySQL o bien MaríaDB, debemos establecer relaciones entre las entidades que conforman nuestra base de datos; esto nos permitirá, estructurar los datos y asociarlos según la lógica que deseamos imprimir a nuestro proyecto. Es muy común luego de crear las relaciones entre las tablas desear eliminarlas, en algunas ocasiones incluso luego de contar con campos insertados, veamos entonces en este artículo cómo eliminar relaciones entre tablas en MySQL por consola, mejorando nuestros conocimientos para gestionar bases de datos desde la línea de comandos.

Cómo eliminar relaciones entre tablas en MySQL por consola

Caso: para recrear este ejemplo, digamos que contamos con dos tablas:

Persona y Actividades, estas están relacionadas y puedes ver como en el artículo:

Relacionar tablas en MySQL por consola.

Cuando deseamos eliminar una relación entre dos tablas, intentamos borrar esa línea imaginaria que las une (Restricción), lo que garantiza que en la tabla que cuenta con la llave foránea (Foreign Key); deberá existir un ID que apunta a ese mismo ID de la tabla principal o padre.

Lo más común cuando deseamos borrar una relación entre tablas es intentar borrar la llave foránea de la tabla, sin embargo esto no será permitido por MySQL debido a que ese campo está relacionado con otra tabla.

¿Cómo puedo entonces borrar la relación entre dos tablas en MySQL?

Pues bien, lo primero que debemos saber es el nombre de la restricción (Constraints) que deseamos borrar; por lo general este nombre no lo conocemos, debido que es generado por MySQL.

1. Consulta el nombre de la restricción o símbolo de la clave foránea

Esta consulta la debes realizar sobre la tabla que tiene la Foreign Key, para nuestro ejemplo sería la tabla Actividades.

SHOW CREATE TABLE `Actividades`;

2. Observa la salida del comando

CREATE TABLE `actividades` (
 `id_actividad` int(11) NOT NULL AUTO_INCREMENT,
 `id_persona` int(11) NOT NULL,
 `fecha` date DEFAULT NULL,
 `hora` time DEFAULT NULL,
 `descripcion` varchar(200) DEFAULT NULL,
 PRIMARY KEY (`id_actividad`),
 KEY `id_persona` (`id_persona`),
 CONSTRAINT `actividades_ibfk_1` FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id_persona`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

En el código anterior podrás observar que la restricción o el símbolo de la relación entre las dos tablas se llama: actividades_ibfk_1, este es el nombre que debes utilizar para eliminar la relación.

3. Ejecuta el comando para eliminar la relación entre las dos tablas

ALTER TABLE `actividades` DROP FOREIGN KEY `actividades_ibfk_1`;

Luego de ejecutar el comando la relación (Constraints) entre ambas tablas desaparecerá, permitiendo utilizarlas de forma independiente.

Recuerda al intentar eliminar una restricción no estás haciendo referencia al campo que actúa como llave foránea o foreign key, debes referenciar el símbolo con el que se ha creado la relación en cuestión.