Sql 如何从传递给另一个表的条件的表中删除值
我面临着这个问题: 我有一个名为Sql 如何从传递给另一个表的条件的表中删除值,sql,database,postgresql,Sql,Database,Postgresql,我面临着这个问题: 我有一个名为pins的表,它存储了地图上关于pin的信息,包括它们的ID、插入它们的用户的ID、其他信息以及插入它们的时间。 我还有一个名为evaluation的表,它只存储他们的ID和插入ID的用户的ID 在我的postgres函数中,我将删除在最近30分钟内按照以下指令插入的所有管脚: 从pin_hour要定义级联外键约束的pin中删除: alter table evaluations add constraint fk_evaluations_pin forei
pins
的表,它存储了地图上关于pin的信息,包括它们的ID、插入它们的用户的ID、其他信息以及插入它们的时间。
我还有一个名为evaluation
的表,它只存储他们的ID和插入ID的用户的ID
在我的postgres函数中,我将删除在最近30分钟内按照以下指令插入的所有管脚:
从pin_hour要定义级联外键约束的pin中删除:
alter table evaluations add constraint fk_evaluations_pin
foreign key (pin_id) references pins (pid_id)
on delete cascade;
如果无法执行此操作,还可以使用returning
从同一查询中的两个表中删除:
with d as (
delete from pins
where pin_hour <= localtime - interval '30 minute'
returning *
)
delete from evaluations
where pin_id in (select pin_id from d);
,其中d为(
从PIN中删除
如果我从pins
表中删除它们,它将从evaluations
表中删除?@Enguias…这就是级联删除外键约束的工作方式。