mysql | Eliminación de filas cuando hay una clave externa

En este artículo, analicemos la descripción general de la clave externa en SQL y el enfoque principal será cómo eliminar una clave externa en MySQL. Discutámoslo paso a paso.

Clave externa: 
en clave externa, cuando un atributo en una tabla que es una clave no principal hace referencia al mismo atributo que es la clave principal en otra tabla, la clave no principal se denomina clave externa. Usamos las referencias de clave externa para hacer los enlaces entre las tablas y cualquier acción que se realice en cualquiera de las tablas.

Pasos para eliminar filas cuando hay una clave externa en MySQL :
Aquí, analizaremos los pasos necesarios para implementar la eliminación de filas cuando hay una clave externa en MySQL con la ayuda de ejemplos para una mejor comprensión.

Paso 1: Creación de una base de datos :
creación de una base de datos de estudiantes mediante el uso de la siguiente consulta SQL de la siguiente manera.

CREATE DATABASE student;

Producción :

Paso 2: Uso de la base de datos :
uso de la base de datos del estudiante mediante la siguiente consulta SQL de la siguiente manera.

USE student;

Producción :

Paso 3: Creación de dos tablas:
Table1: creación de una tabla student_details con 3 columnas utilizando la siguiente consulta SQL de la siguiente manera.

CREATE TABLE student_details
(
     student_id INT PRIMARY KEY,
     Student_name varchar(8),
     student_year varchar(8)
);

Producción :

Table2: creación de una tabla student_exam con 3 columnas utilizando la siguiente consulta SQL de la siguiente manera.

CREATE TABLE student_exam
(
  exam_id INT PRIMARY KEY,
  exam_name varchar(8),
  student_id INT,
  FOREIGN KEY(student_id)
  REFERENCES student_details(student_id) 
  ON DELETE CASCADE
);

Salida:
la tabla examen_estudiante tiene una clave externa id_estudiante que hace referencia a id_estudiante en la tabla detalles_estudiante. Aquí, ON DELETE CASCADE se agrega porque cuando se elimina cualquier fila en una tabla, lo mismo se elimina en las tablas de referencia externas que hacen referencia a la clave principal en esa tabla.

Paso 4: Verificación de la base de datos :
para ver la descripción de las tablas en la base de datos utilizando la siguiente consulta SQL de la siguiente manera.

DESCRIBE student_details;

Producción :

DESCRIBE student_exam;

Salida:
aquí, podemos ver MUL para la clave externa en la columna de clave.

Paso 5: Insertar datos en la tabla :
Insertar filas en la tabla de detalles_estudiantes usando la siguiente consulta SQL de la siguiente manera.

INSERT INTO student_details VALUES(19102047,'PRADEEP','1st');
INSERT INTO student_details VALUES(19102048,'KOUSHIK','1st');
INSERT INTO student_details VALUES(19102049,'SATWIK','2st');
INSERT INTO student_details VALUES(19102050,'VAMSI','2nd');

Producción :

Insertar filas en la tabla student_exam usando la siguiente consulta SQL de la siguiente manera.

INSERT INTO student_exam VALUES(9001,'DBMS','19102047');
INSERT INTO student_exam VALUES(9002,'C.N','19102048');
INSERT INTO student_exam VALUES(9003,'O.S','19102049');
INSERT INTO student_exam VALUES(9004,'O.S','19102050');

Producción :

Paso 6: Verificación de los datos insertados:
visualización de la tabla student_details después de insertar filas utilizando la siguiente consulta SQL de la siguiente manera.

SELECT * FROM student_details;

Producción :

Ver la tabla student_exam después de insertar filas usando la siguiente consulta SQL de la siguiente manera.

SELECT* FROM student_exam;

Producción :

Nota: 
si no se utiliza la restricción ON DELETE CASCADE, se produce un error de referencia.

Paso 7: Eliminación de filas cuando hay una clave externa:
consulta para eliminar un estudiante con id 19102048 de la tabla student_exam donde las tablas a las que se hace referencia son student_details.
Sintaxis –

 DELETE FROM table_name
 WHERE constraint;

Consulta –

 DELETE FROM student_details
 WHERE student_id=19102048;

Salida: antes de eliminar –

Salida: después de eliminar:
las filas con la identificación del estudiante 19102048 se eliminan en ambas tablas.

Publicación traducida automáticamente

Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *