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:
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.
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
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.
Muchas gracias, me ayudaste mucho. Muy clara y sencilla la explicacion!!!
Con gusto Alberto!