SQL Delete Cascade

SQL Delete Cascade

El SQL on Delete Cascade es una restricción que permite a SQL eliminar las filas asociadas con una tabla principal específica cuando se elimina la tabla principal.

Usando este artículo, discutiremos cómo implementar la restricción Eliminar en Cascade en SQL.

SQL Cascade Ejemplo práctico

Supongamos que tenemos dos tablas que contienen información del desarrollador y las contribuciones de otro desarrollador. El desarrollador tiene múltiples contribuciones.

Aquí, queremos crear una relación donde todas las contribuciones de la otra tabla se eliminen automáticamente si el desarrollador se elimina de la tabla.

Comencemos creando la tabla de desarrolladores:

Crear desarrolladores de tabla (
Clave primaria serial dev_id,
full_name varchar (100) no nulo,
dev_language varchar (255) no nulo
);

A continuación, creemos una tabla de contribuciones como se muestra:

Crear tabla contribuye (
REPO_ID Clave primaria en serie,
repo_name varchar (100) no nulo,
commit_id int no nulo,
dev_id entero no nulo,
Clave externa (dev_id)
Referencias desarrolladores (dev_id)
En la cascada de eliminación
);

Esta tabla declara una restricción de clave extranjera que posee una restricción en cascada de eliminación y hace referencia al dev_id en la tabla de desarrolladores.

Agregamos datos de muestra para probar como se muestra:

Insertar en desarrolladores (full_name, dev_language)
VALORES
('Romilly Roy Reeve', 'Python 3'),
('Anastasija Jimi Hirsch', 'C ++'),
('Marylène Nina Capella', 'Rust')

La tabla de los desarrolladores debe tener datos de muestra como se muestra:

Seleccionar * de los desarrolladores;

Agregue datos de muestra a la tabla de contribuciones como se muestra:

Insertar en Contrib (Repo_Name, Commit_id, dev_id)
VALORES
('Repo1', 464576, 1),
('Repo1', 445876, 2),
('Repo1', 466466, 3);

La tabla Contrib debe contener datos como:

Seleccionar * de Contrib;

Para ilustrar cómo funciona la restricción de Cascade, eliminar el desarrollador con la identificación de 3.

Eliminar de los desarrolladores donde dev_id = 3;

Si consulta la tabla Contrib, notará que el registro de dev_id 3 también se ha descartado.

Seleccionar * de Contrib;

Así es como usarlos en las limitaciones de eliminación en cascada en SQL.

Gracias por leer!!