Sql Postgres中的级联删除:使用从子表保存的ID从子表和父表中删除
在Postgres中,我有两个表,需要通过级联删除清除一些数据: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 如果存在,则删除表用户标识-
- 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