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.rom...@trenesargentinos.gob.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”
>

Reply via email to