繁体   English   中英

用后缀截断 Postgres 中的所有表

[英]Truncate all tables in Postgres with a suffix

我有一组后缀_ABC的表

表名如下:

TEST_ABC
MYTB_ABC
AB_1_ER_ABC

我知道我可以做到:

TRUNCATE TABLE TEST_ABC;

但我不想运行这 100 次。

我有100个。 有没有办法使用普通 SQL(只有 1 个查询)来截断后缀为 _ABC 的表?

为此,您需要动态 SQL。 这可以通过匿名 PL/pgSQL 块来完成:

do
$$
declare
  l_sql text;
begin
  select 'truncate '||string_agg(tablename, ',')||' cascade'
     into l_sql
  from pg_tables
  where tablename like '%\_abc' escape '\'
    and schemaname = 'public';
  execute l_sql;
end;
$$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM