【问题标题】:Postgresql WITH statement multiple deletesPostgresql WITH 语句多次删除
【发布时间】:2020-07-08 17:11:10
【问题描述】:
我可以在 Postgresql 中做到这一点吗?
with userToDelete as (
select userid from users where condition;
) (
delete from table1 where user_id = userToDelete;
delete from table2 where userid = userToDelete;
delete from table3 where user_id = userToDelete;
);
我看了,但什么也没找到。
谢谢。
【问题讨论】:
标签:
postgresql
with-statement
【解决方案1】:
您需要多个 CTE:
with userToDelete as (
select userid
from users
where condition
), t1 as (
delete from table1
where user_id in (select userid from userToDelete)
), t2 as (
delete from table2
where userid in (select userid from userToDelete)
)
delete from table3
where user_id in (select userid from userToDelete);
注意只有一个; 来结束整个语句。