【问题标题】:cascade this query级联此查询
【发布时间】:2018-06-06 05:22:45
【问题描述】:

我想级联这个查询。

SELECT 'TRUNCATE TABLE ' ||  tablename || ';' FROM pg_tables WHERE tableowner='XXX'; 

我希望所有者“xxx”的所有表都被截断(这可行),但我希望它也级联。我怎样才能让它级联?

【问题讨论】:

  • 你试过SELECT 'TRUNCATE TABLE ' || tablename || ' CASCADE;' FROM pg_tables WHERE tableowner='XXX';吗?

标签: sql database postgresql truncate cascade


【解决方案1】:

@clemens commented一样添加keyword CASCADE
还要转义tablename,避免SQL注入等错误。最优雅的是format()

SELECT format('TRUNCATE TABLE %I CASCADE;', tablename)
FROM   pg_tables WHERE tableowner = 'XXX'; 

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2022-01-22
    • 2011-04-04
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多