PostgreSQL Cascade Eliminar

PostgreSQL Cascade Eliminar

"Cuando trabaje con bases de datos PostgreSQL, encontrará instancias en las que debe dejar registros de una tabla. Antes de ejecutar una consulta de eliminación, es importante asegurarse de que la tabla no deje ninguna relación incompleta entre tablas.

En PostgreSQL, podemos usar la función de eliminación de cascade para lograr esto. Esta característica permite que una operación de eliminación elimine los registros especificados y cualquier tecla extranjera que haga referencia a ellos.

Usando este artículo, revisaremos cómo realizar un Cascade Eliminar en PostgreSQL."

PostgreSQL Cascade Eliminar

La función Cascade Elimete es muy simple. Asegura que la eliminación de cualquier registro de los padres también elimine los registros del niño. Para evitar eliminar accidentalmente los registros infantiles, puede establecer las limitaciones de la clave extranjera en la tabla principal en NULL.

Veamos cómo podemos lograr esto.

Comience configurando una base de datos de muestra. En su utilidad PSQL, ejecute el comando:

1
2
3
4
5
6
7
8
Cree la base de datos "cascade_delete_db;"
CON
Propietario = Postgres
Codificación = 'utf8'
Lc_collate = 'c'
Lc_ctype = 'c'
TableSpace = PG_DEFAULT
Límite de conexión = -1;

Una vez creado, cambie a esa base de datos ejecutando el comando:

1
\ c cascade_delete_db;

A continuación, creemos la tabla principal ejecutando la consulta:

1
2
3
4
5
6
7
Crear usuarios de tabla (
ID Clave primaria en serie,
Full_name Varchar (100),
Envíe un correo electrónico a Varchar (255),
Varchar país (50),
department_foreign_key int no nulo
);

A continuación, podemos crear la mesa infantil como:

1
2
3
4
Crear departamento de tabla (
user_id serial clave primaria,
Departamento Varchar (50)
);

A continuación, necesitamos agregar una restricción de clave extranjera a la tabla principal, como se muestra en el comando a continuación:

1
2
Los usuarios de alterar la tabla agregan la clave extranjera (department_foreign_key)
Departamento de referencias (user_id) en Delete Cascade;

Ahora podemos insertar algunos datos de muestra en las tablas como se muestra:

1
2
3
4
5
6
7
8
Insertar en los valores del departamento (departamento)
('Desarrollo del juego'),
('Dev-Ops'),
('Backend-dev');
Insertar en los valores de los usuarios (Full_name, correo electrónico, país, departamento_foreign_key)
('Alley K', '[email protected] ',' nosotros ', 1),
('KASPA V', '[email protected] ',' ca ', 2),
('Dev.W ',' [email protected] ',' af ', 3);

Luego podemos consultar las tablas como:

1
Seleccionar * de los usuarios;

Esto debería devolver la tabla:

Desde la mesa del departamento, podemos ejecutar:

1
Seleccionar * del departamento;

La tabla resultante:

Una vez que todos los datos de la muestra están listos, podemos realizar una eliminación de cascada como se muestra en la consulta a continuación:

1
Eliminar del departamento donde del departamento = 'dev-ops';

En la declaración anterior, utilizamos la consulta de eliminación normal para eliminar un registro donde el departamento es igual a "Dev-OPS."Dado que establecemos el Cascade Elimine, podemos verificar la tabla de los usuarios para verificar al usuario con el departamento_foreign_key de 2 se elimina.

1
Seleccionar * de los usuarios;

Podemos ver que solo dos registros están en la tabla de los usuarios a pesar de que eliminamos el registro de la mesa de los departamentos.

Felicitaciones, has aprendido a realizar una Cascade Eliminar en PostgreSQL.

Terminación

Este tutorial le enseñó cómo vincular dos tablas usando una llave extranjera y establecer una función de eliminación de cascade.

Gracias por leer!!