Sql Postgres中的级联删除:使用从子表保存的ID从子表和父表中删除

Sql Postgres中的级联删除:使用从子表保存的ID从子表和父表中删除,sql,postgresql,Sql,Postgresql,在Postgres中,我有两个表,需要通过级联删除清除一些数据: - PARTICIPANTS_T: has a foreign key USER_ID on USERS_T.ID - USERS_T 第一步是从符合标准的参与者中删除,例如 从参与者中删除,其中有效的_标志='Y' 第二种方法是从用户中删除其ID在之前的删除中被引用的行 从用户中删除,其中ID=[…从步骤1中删除] 如何在Postgres中进行级联删除 我考虑过保存一个变量:select INTO 如果存在,则删除表用户标识-

在Postgres中,我有两个表,需要通过级联删除清除一些数据:

- PARTICIPANTS_T: has a foreign key USER_ID on USERS_T.ID
- USERS_T
第一步是从符合标准的参与者中删除,例如

从参与者中删除,其中有效的_标志='Y'

第二种方法是从用户中删除其ID在之前的删除中被引用的行

从用户中删除,其中ID=[…从步骤1中删除]

如何在Postgres中进行级联删除

我考虑过保存一个变量:select INTO

如果存在,则删除表用户标识-这种语法是错误的 从用户id中的用户id中选择用户id 从参与者中选择用户标识,其中有效标识为“Y”


但这很不方便,因为用户ID变成了一个需要维护的单独表。我上面的语法不正确。有人能用这两个步骤给出一个完整的可重复脚本吗?

这有效:围绕级联删除开始/提交:

begin;
delete from participants_t where valid_flag = 'Y';
delete from users_t where id in (
            select user_id from participants_t where valid_flag = 'Y');       
commit;

你可以在删除时使用级联!!!关于表1