Re: Consulta borrar registros en cascada

From: Marcelo Diaz <marcelorauldiaz(at)gmail(dot)com>
To: "Romero, Fernando" <Fernando(dot)Romero(at)trenesargentinos(dot)gob(dot)ar>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta borrar registros en cascada
Date: 2021-02-25 20:17:06
Message-ID: CABu+zm+ZhXQ4UAvj4DbqOmOvka4C_G6nx-Kzamti09qRbeG5mw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Fernando,

Cuando se eliminan registros en PostgreSQL, es importante tener en cuenta
las foreign keys que pueden existir entre estos registros y los registros
de una tabla diferente. Para ello, la opción DELETE ON CASCADE ayuda a
garantizar que todos los registros hijos también se eliminen cuando se
elimina un registro padre.

Aquí te dejo un ejemplo:

create table secciones
(
seccion_id serial primary key,
nombre text
);

create table empleados
(
empleado_id serial,
seccion_id int,
primary key (empleado_id, seccion_id),
*constraint fk_seccion foreign key (seccion_id) *
* references secciones(seccion_id) on delete cascade*
);

insert into secciones (nombre) values ('Contabilidad'), ('RRHH'),
('Servicio');

insert into empleados values (1, 1), (2,1), (3,2), (4,3);

select * from empleados;
empleado_id | seccion_id
-------------+------------
1 | 1
2 | 1
3 | 2
4 | 3

delete from secciones where seccion_id = 2;

select * from empleados;
empleado_id | seccion_id
-------------+------------
1 | 1
2 | 1
4 | 3
Como puedes ver se borro la seccion 2 y tambien el empleado de esa seccion.
https://www.postgresql.org/docs/current/ddl-constraints.html

Espero sirva.

Saludos.

Marcelo Diaz

On Thu, Feb 25, 2021 at 11:05 AM Romero, Fernando <
Fernando(dot)Romero(at)trenesargentinos(dot)gob(dot)ar> wrote:

> Hola como estan, mi consulta es la siguiente…
>
> Puedo borrar registros por año? estoy intentando y me da error, vengo de
> mysql y ahí con la opción “where year(tabla)=año” borro todo ese año.
>
> Para borrar en cascada o sea que borre también en las tablas referenciadas
> con la opción delete on cascade?.
>
>
>
> Saludos y gracias
>
> “El contenido del presente mensaje (y sus anexos) es privado, confidencial
> y de exclusivo uso para el destinatario referenciado; es de público
> conocimiento que las comunicaciones por medio de Internet no permiten
> asegurar ni garantizar la confidencialidad de los mensajes transmitidos,
> así como tampoco su integridad o su correcta recepción; es por ello que
> SOFSE no se responsabiliza de posibles perjuicios derivados de la captura,
> incorporaciones de virus o cualquier otra manipulación efectuada por
> terceros. Las opiniones expresadas en este mensaje y en los archivos
> adjuntos son propias del remitente y no representan la opinión o políticas
> de SOFSE, salvo que se diga expresamente y el remitente se encuentre
> autorizado para ello”
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2021-03-03 22:10:20 Re: Consulta borrar registros en cascada
Previous Message Romero, Fernando 2021-02-25 14:04:47 Consulta borrar registros en cascada