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”
>
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 |