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 <
[email protected]> 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”
>