【问题标题】: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);
    

    注意只有一个; 来结束整个语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-04
      • 2017-09-23
      • 2018-10-26
      • 1970-01-01
      • 2015-09-11
      • 2018-04-14
      • 1970-01-01
      • 2020-02-29
      相关资源
      最近更新 更多