Clave foránea de caída de MySQL

Rashmi Patidar 15 febrero 2024
Clave foránea de caída de MySQL

La clave foránea es la clave que vincula dos o más tablas y forma un vínculo significativo entre ellas.

Esta clave hace referencia a la clave principal en la tabla secundaria y actúa como clave externa en la tabla principal. A menudo se denomina restricción de clave de referencia.

Soltar clave externa en MySQL

El hecho recopilado sobre la clave externa es que, dado que actúa como clave principal, no puede haber más de una entrada en la tabla y el registro es único con respecto a la clave principal.

La clave externa es una restricción que impide que el usuario elimine directamente los registros vinculados entre tablas, lo que ayuda a prevenir la acción del usuario y conduce a la seguridad de los datos.

La tabla donde reside la clave foránea se denomina tabla secundaria, y aquella de la que procede la clave se denomina tabla padre. El concepto de vincular tablas solo viene en los Sistemas de Gestión de Bases de Datos Relacionales.

Los beneficios de las restricciones de clave externa en MySQL se encuentran a continuación.

  1. La restricción impone la integridad referencial y, por lo tanto, la coherencia entre las tablas.
  2. El uso de restricciones como ON DELETE CASCADE y ON UPDATE CONSTRAINTS ayuda a mantener el comportamiento coherente de las tablas en toda la base de datos.
  3. Con el tiempo, aumenta el rendimiento, ya que mantener las restricciones en las tablas interrelacionadas reduce la sobrecarga de recordar las tablas y se utiliza para detectar las tablas vinculadas.
  4. Aumenta el rendimiento al realizar mejores uniones y recuperar resultados más rápido ya que las tablas ya están vinculadas.
  5. Cuando se elimina un registro en la tabla principal antes que la clave externa, la consulta falla y no permite que se eliminen los registros. Muestra el vínculo entre las tablas y solicita eliminar primero los registros de la tabla secundaria en lugar de la principal.
A continuación se muestra la captura de pantalla de la misma.

eliminar registro de un padre cuando existe un enlace en la tabla secundaria

Para soltar una clave externa, primero se deben crear tablas y generar claves externas en las tablas. A continuación se muestra el comando para crear la restricción de clave externa en las tablas definidas.

create table student(id varchar(255), name varchar(255), dob date, deptId varchar(255), primary key(id));
create table department(dept_id varchar(255), id varchar(255), dept_name varchar(255), constraint fk_id foreign key(id) references student(id));

Primero, la consulta anterior crea dos tablas: estudiante y departamento. La tabla tiene la forma de relación padre-hijo donde el atributo id en la tabla estudiante actúa como una clave externa id en la tabla departamento.

Capturas de pantalla adjuntas:

crear tabla estudiante-padre con clave principal

Crear departamento de mesa hijo con clave foránea

Cuando se insertan registros en la tabla, y cuando se intenta manipular el registro insertado con una declaración de “eliminación”, aparecerá el error que se muestra arriba. Para solucionar el problema de llenado, elimine la restricción de clave externa y realice la acción de eliminación.

Ahora, la sintaxis para eliminar la restricción creada anteriormente en MySQL es:

Alter table table_name drop constraint constraint_name;

El comando anterior usa el comando alterar para cambiar el esquema de la tabla y la palabra clave soltar para eliminar la restricción aplicada al esquema. Alterar tabla es un lenguaje de definición de datos también conocido como el comando DDL y ayuda a crear esquemas de bases de datos y tablas.

Alter table department drop constraint fk_id;

A continuación se muestra la captura de pantalla de la instrucción eliminar cuando se elimina la restricción de clave externa.

Suelte la clave externa y elimine registros de la tabla principal

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - MySQL Key