是否可以使用通配符截断和级联表?
SELECT format('TRUNCATE TABLE %I CASCADE;', tablename)
FROM pg_tables WHERE tableowner = 'XXX';
答案 0 :(得分:1)
如果将其包装在匿名代码块中并添加循环,则可以使用
.child("WPXEmqvX1BfQB9n3UQFjF3xi1so2")
另外(如上所述),我添加架构名称只是为了避免任何潜在的意外后果。
答案 1 :(得分:1)
通过这种方式,您可以获得一个包含所有table_names的TRUNCATE TABLE,然后它们将一起执行
do $$
declare
names text;
my_sql text;
begin
select string_agg(format('%I.%I', schemaname, tablename), ', ')
into names
from pg_tables
where tableowner = 'XXX';
if names<>'' then
my_sql = 'TRUNCATE TABLE '||names||' CASCADE';
execute my_sql;
end if;
end;
$$;